@k-l-lambda/lilylet-markdown 0.1.66 → 0.1.68

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 (3) hide show
  1. package/lib/index.cjs +566 -280
  2. package/lib/index.js +566 -280
  3. package/package.json +4 -4
package/lib/index.js CHANGED
@@ -11,14 +11,14 @@ var localGrammar = function() {
11
11
  var o = function(k, v, o2, l) {
12
12
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
13
13
  return o2;
14
- }, $V0 = [5, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V1 = [2, 42], $V2 = [1, 9], $V3 = [1, 10], $V4 = [1, 11], $V5 = [1, 12], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 15], $V9 = [1, 16], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 29], $Vf = [1, 32], $Vg = [1, 33], $Vh = [5, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $Vi = [5, 26], $Vj = [5, 26, 32], $Vk = [1, 47], $Vl = [5, 26, 32, 35], $Vm = [1, 81], $Vn = [1, 82], $Vo = [1, 83], $Vp = [1, 84], $Vq = [1, 85], $Vr = [1, 86], $Vs = [1, 89], $Vt = [1, 90], $Vu = [1, 65], $Vv = [1, 66], $Vw = [1, 91], $Vx = [1, 92], $Vy = [1, 93], $Vz = [1, 101], $VA = [1, 102], $VB = [1, 94], $VC = [1, 95], $VD = [1, 96], $VE = [1, 97], $VF = [1, 98], $VG = [1, 99], $VH = [1, 100], $VI = [1, 77], $VJ = [1, 78], $VK = [1, 79], $VL = [1, 80], $VM = [1, 103], $VN = [1, 104], $VO = [1, 105], $VP = [1, 106], $VQ = [1, 107], $VR = [1, 108], $VS = [1, 109], $VT = [1, 110], $VU = [1, 111], $VV = [1, 112], $VW = [1, 113], $VX = [1, 114], $VY = [1, 88], $VZ = [5, 9, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V_ = [2, 29], $V$ = [5, 9, 26, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V01 = [5, 9, 26, 32, 35, 166], $V11 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $V21 = [2, 123], $V31 = [1, 139], $V41 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 67, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $V51 = [5, 9, 26, 32, 35, 49, 50, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 166], $V61 = [1, 222], $V71 = [1, 228], $V81 = [1, 203], $V91 = [1, 204], $Va1 = [1, 201], $Vb1 = [1, 225], $Vc1 = [1, 202], $Vd1 = [1, 200], $Ve1 = [1, 224], $Vf1 = [1, 194], $Vg1 = [1, 195], $Vh1 = [1, 196], $Vi1 = [1, 197], $Vj1 = [1, 198], $Vk1 = [1, 199], $Vl1 = [1, 205], $Vm1 = [1, 206], $Vn1 = [1, 207], $Vo1 = [1, 208], $Vp1 = [1, 209], $Vq1 = [1, 210], $Vr1 = [1, 211], $Vs1 = [1, 212], $Vt1 = [1, 213], $Vu1 = [1, 214], $Vv1 = [1, 215], $Vw1 = [1, 216], $Vx1 = [1, 217], $Vy1 = [1, 218], $Vz1 = [1, 219], $VA1 = [1, 220], $VB1 = [1, 221], $VC1 = [1, 223], $VD1 = [1, 226], $VE1 = [1, 227], $VF1 = [1, 229], $VG1 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 67, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $VH1 = [9, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152], $VI1 = [104, 169, 170, 171, 172], $VJ1 = [61, 62], $VK1 = [5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 64, 65, 66, 67, 69, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], $VL1 = [59, 62, 67, 104];
14
+ }, $V0 = [5, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V1 = [2, 44], $V2 = [1, 9], $V3 = [1, 10], $V4 = [1, 11], $V5 = [1, 12], $V6 = [1, 13], $V7 = [1, 14], $V8 = [1, 15], $V9 = [1, 16], $Va = [1, 17], $Vb = [1, 18], $Vc = [1, 19], $Vd = [1, 20], $Ve = [1, 29], $Vf = [1, 32], $Vg = [1, 33], $Vh = [5, 9, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $Vi = [5, 26], $Vj = [5, 26, 33], $Vk = [1, 47], $Vl = [5, 26, 33, 36], $Vm = [1, 83], $Vn = [1, 84], $Vo = [1, 85], $Vp = [1, 86], $Vq = [1, 87], $Vr = [1, 88], $Vs = [1, 94], $Vt = [1, 95], $Vu = [1, 66], $Vv = [1, 67], $Vw = [1, 108], $Vx = [1, 109], $Vy = [1, 110], $Vz = [1, 111], $VA = [1, 96], $VB = [1, 97], $VC = [1, 98], $VD = [1, 106], $VE = [1, 107], $VF = [1, 99], $VG = [1, 100], $VH = [1, 101], $VI = [1, 102], $VJ = [1, 103], $VK = [1, 104], $VL = [1, 105], $VM = [1, 79], $VN = [1, 80], $VO = [1, 81], $VP = [1, 82], $VQ = [1, 112], $VR = [1, 113], $VS = [1, 114], $VT = [1, 115], $VU = [1, 116], $VV = [1, 117], $VW = [1, 118], $VX = [1, 119], $VY = [1, 120], $VZ = [1, 121], $V_ = [1, 122], $V$ = [1, 123], $V01 = [1, 124], $V11 = [1, 90], $V21 = [1, 91], $V31 = [1, 92], $V41 = [1, 93], $V51 = [5, 9, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V61 = [2, 29], $V71 = [5, 9, 26, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V81 = [5, 9, 26, 33, 36, 173, 175, 177, 178], $V91 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $Va1 = [2, 130], $Vb1 = [1, 150], $Vc1 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 68, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $Vd1 = [5, 9, 26, 33, 36, 50, 51, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 173, 175, 177, 178], $Ve1 = [1, 236], $Vf1 = [1, 242], $Vg1 = [1, 217], $Vh1 = [1, 218], $Vi1 = [1, 215], $Vj1 = [1, 239], $Vk1 = [1, 216], $Vl1 = [1, 214], $Vm1 = [1, 238], $Vn1 = [1, 208], $Vo1 = [1, 209], $Vp1 = [1, 210], $Vq1 = [1, 211], $Vr1 = [1, 212], $Vs1 = [1, 213], $Vt1 = [1, 219], $Vu1 = [1, 220], $Vv1 = [1, 221], $Vw1 = [1, 222], $Vx1 = [1, 223], $Vy1 = [1, 224], $Vz1 = [1, 225], $VA1 = [1, 226], $VB1 = [1, 227], $VC1 = [1, 228], $VD1 = [1, 229], $VE1 = [1, 230], $VF1 = [1, 231], $VG1 = [1, 232], $VH1 = [1, 233], $VI1 = [1, 234], $VJ1 = [1, 235], $VK1 = [1, 237], $VL1 = [1, 240], $VM1 = [1, 241], $VN1 = [1, 243], $VO1 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 68, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $VP1 = [9, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159], $VQ1 = [110, 196, 197, 198, 199], $VR1 = [110, 180, 184], $VS1 = [2, 210], $VT1 = [62, 63], $VU1 = [5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 65, 66, 67, 68, 70, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], $VV1 = [1, 295], $VW1 = [1, 296], $VX1 = [1, 310], $VY1 = [1, 311], $VZ1 = [1, 313], $V_1 = [1, 314], $V$1 = [1, 315], $V02 = [2, 214], $V12 = [1, 317], $V22 = [60, 63, 68, 110], $V32 = [182, 185, 190, 192, 193, 194], $V42 = [182, 185, 190], $V52 = [2, 223], $V62 = [110, 180, 184, 187];
15
15
  var parser = {
16
16
  trace: function trace() {
17
17
  },
18
18
  yy: {},
19
- symbols_: { "error": 2, "document": 3, "content": 4, "EOF": 5, "headers": 6, "measures": 7, "newlines": 8, "NEWLINE": 9, "header": 10, "HEADER_TITLE": 11, "STRING": 12, "]": 13, "HEADER_SUBTITLE": 14, "HEADER_COMPOSER": 15, "HEADER_ARRANGER": 16, "HEADER_LYRICIST": 17, "HEADER_OPUS": 18, "HEADER_INSTRUMENT": 19, "HEADER_INSTRUMENT_STAFF": 20, "HEADER_GENRE": 21, "HEADER_STAVES": 22, "HEADER_MEASURES": 23, "HEADER_AUTOBEAM": 24, "measure_content": 25, "|": 26, "parts": 27, "addlyrics_opt": 28, "addlyrics_blocks": 29, "addlyrics_block": 30, "part_voices": 31, "PART_SEP": 32, "part_start": 33, "voice_block": 34, "VOICE_SEP": 35, "voice_events": 36, "event": 37, "note_event": 38, "rest_event": 39, "context_event": 40, "grace_event": 41, "tuplet_event": 42, "tremolo_event": 43, "pitch_reset_event": 44, "barline_event": 45, "harmony_event": 46, "markup_event": 47, "dynamic_event": 48, "CMD_BAR": 49, "CMD_CHORDS": 50, "CMD_MARKUP": 51, "^": 52, "_": 53, "dynamic_mark": 54, "chord": 55, "duration": 56, "post_events": 57, "pitch": 58, "<": 59, "pitches": 60, ">": 61, "PITCH": 62, "octave": 63, "!": 64, "OCT_UP": 65, "OCT_DOWN": 66, "NUMBER": 67, "dots": 68, ".": 69, "REST_CHAR": 70, "SPACE_CHAR": 71, "clef_cmd": 72, "key_cmd": 73, "time_cmd": 74, "partial_cmd": 75, "tempo_cmd": 76, "staff_cmd": 77, "ottava_cmd": 78, "stem_cmd": 79, "numeric_time_sig_cmd": 80, "default_time_sig_cmd": 81, "CMD_CLEF": 82, "CMD_KEY": 83, "pitch_name": 84, "mode": 85, "MODE_MAJOR": 86, "MODE_MINOR": 87, "CMD_TIME": 88, "/": 89, "CMD_NUMERIC_TIME_SIG": 90, "CMD_DEFAULT_TIME_SIG": 91, "CMD_PARTIAL": 92, "CMD_TEMPO": 93, "=": 94, "CMD_STAFF": 95, "CMD_OTTAVA": 96, "#": 97, "-": 98, "CMD_STEMUP": 99, "CMD_STEMDOWN": 100, "CMD_STEMNEUTRAL": 101, "CMD_GRACE": 102, "{": 103, "}": 104, "CMD_TIMES": 105, "CMD_TUPLET": 106, "tremolo_pitches": 107, "CMD_REPEAT": 108, "TREMOLO": 109, "post_event": 110, "articulation_mark": 111, "ornament_mark": 112, "hairpin_mark": 113, "pedal_mark": 114, "tie_mark": 115, "slur_mark": 116, "beam_mark": 117, "tremolo_mark": 118, "direction_mark": 119, "rest_mark": 120, "fingering_mark": 121, "fingering_number": 122, "navigation_mark": 123, "markup_mark": 124, "glissando_mark": 125, "CMD_REST": 126, "ART_STACCATO": 127, "ART_STACCATISSIMO": 128, "ART_TENUTO": 129, "ART_MARCATO": 130, "ART_ACCENT": 131, "ART_PORTATO": 132, "ORN_TRILL": 133, "ORN_TURN": 134, "ORN_MORDENT": 135, "ORN_PRALL": 136, "ORN_FERMATA": 137, "ORN_SHORTFERMATA": 138, "ORN_ARPEGGIO": 139, "ORN_BREATHE": 140, "DYN_PPP": 141, "DYN_PP": 142, "DYN_P": 143, "DYN_MP": 144, "DYN_MF": 145, "DYN_F": 146, "DYN_FF": 147, "DYN_FFF": 148, "DYN_SFZ": 149, "DYN_RFZ": 150, "DYN_SF": 151, "DYN_FP": 152, "CMD_CRESC_BEGIN": 153, "CMD_DIM_BEGIN": 154, "CMD_DYNAMICS_END": 155, "CMD_SUSTAINON": 156, "CMD_SUSTAINOFF": 157, "~": 158, "(": 159, ")": 160, "[": 161, ":": 162, "CMD_CODA": 163, "CMD_SEGNO": 164, "CMD_GLISSANDO": 165, "CMD_ADDLYRICS": 166, "lyric_sequence": 167, "lyric_item": 168, "LYRIC_WORD": 169, "LYRIC_HYPHEN": 170, "LYRIC_SKIP": 171, "LYRIC_EXTENDER": 172, "$accept": 0, "$end": 1 },
20
- terminals_: { 2: "error", 5: "EOF", 9: "NEWLINE", 11: "HEADER_TITLE", 12: "STRING", 13: "]", 14: "HEADER_SUBTITLE", 15: "HEADER_COMPOSER", 16: "HEADER_ARRANGER", 17: "HEADER_LYRICIST", 18: "HEADER_OPUS", 19: "HEADER_INSTRUMENT", 20: "HEADER_INSTRUMENT_STAFF", 21: "HEADER_GENRE", 22: "HEADER_STAVES", 23: "HEADER_MEASURES", 24: "HEADER_AUTOBEAM", 26: "|", 32: "PART_SEP", 35: "VOICE_SEP", 49: "CMD_BAR", 50: "CMD_CHORDS", 51: "CMD_MARKUP", 52: "^", 53: "_", 59: "<", 61: ">", 62: "PITCH", 64: "!", 65: "OCT_UP", 66: "OCT_DOWN", 67: "NUMBER", 69: ".", 70: "REST_CHAR", 71: "SPACE_CHAR", 82: "CMD_CLEF", 83: "CMD_KEY", 86: "MODE_MAJOR", 87: "MODE_MINOR", 88: "CMD_TIME", 89: "/", 90: "CMD_NUMERIC_TIME_SIG", 91: "CMD_DEFAULT_TIME_SIG", 92: "CMD_PARTIAL", 93: "CMD_TEMPO", 94: "=", 95: "CMD_STAFF", 96: "CMD_OTTAVA", 97: "#", 98: "-", 99: "CMD_STEMUP", 100: "CMD_STEMDOWN", 101: "CMD_STEMNEUTRAL", 102: "CMD_GRACE", 103: "{", 104: "}", 105: "CMD_TIMES", 106: "CMD_TUPLET", 108: "CMD_REPEAT", 109: "TREMOLO", 126: "CMD_REST", 127: "ART_STACCATO", 128: "ART_STACCATISSIMO", 129: "ART_TENUTO", 130: "ART_MARCATO", 131: "ART_ACCENT", 132: "ART_PORTATO", 133: "ORN_TRILL", 134: "ORN_TURN", 135: "ORN_MORDENT", 136: "ORN_PRALL", 137: "ORN_FERMATA", 138: "ORN_SHORTFERMATA", 139: "ORN_ARPEGGIO", 140: "ORN_BREATHE", 141: "DYN_PPP", 142: "DYN_PP", 143: "DYN_P", 144: "DYN_MP", 145: "DYN_MF", 146: "DYN_F", 147: "DYN_FF", 148: "DYN_FFF", 149: "DYN_SFZ", 150: "DYN_RFZ", 151: "DYN_SF", 152: "DYN_FP", 153: "CMD_CRESC_BEGIN", 154: "CMD_DIM_BEGIN", 155: "CMD_DYNAMICS_END", 156: "CMD_SUSTAINON", 157: "CMD_SUSTAINOFF", 158: "~", 159: "(", 160: ")", 161: "[", 162: ":", 163: "CMD_CODA", 164: "CMD_SEGNO", 165: "CMD_GLISSANDO", 166: "CMD_ADDLYRICS", 169: "LYRIC_WORD", 170: "LYRIC_HYPHEN", 171: "LYRIC_SKIP", 172: "LYRIC_EXTENDER" },
21
- productions_: [0, [3, 2], [4, 2], [4, 3], [4, 3], [4, 4], [4, 2], [4, 1], [8, 1], [8, 2], [6, 1], [6, 2], [6, 2], [6, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 4], [10, 3], [10, 3], [10, 3], [10, 3], [7, 1], [7, 3], [7, 2], [25, 1], [28, 0], [28, 1], [29, 1], [29, 2], [29, 2], [27, 1], [27, 4], [33, 0], [31, 1], [31, 3], [34, 2], [36, 0], [36, 2], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [37, 1], [45, 2], [46, 2], [47, 2], [47, 3], [47, 3], [48, 1], [44, 1], [38, 3], [38, 3], [38, 2], [38, 2], [55, 3], [60, 1], [60, 2], [58, 3], [58, 2], [58, 2], [58, 1], [63, 1], [63, 1], [63, 2], [63, 2], [56, 2], [68, 0], [68, 2], [39, 3], [39, 3], [39, 2], [39, 2], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [40, 1], [72, 2], [73, 3], [84, 1], [85, 1], [85, 1], [74, 4], [80, 1], [81, 1], [75, 2], [76, 5], [76, 2], [76, 4], [77, 2], [78, 3], [78, 4], [78, 1], [79, 1], [79, 1], [79, 1], [41, 4], [41, 2], [41, 2], [42, 7], [42, 7], [107, 1], [107, 1], [43, 9], [43, 8], [43, 7], [57, 0], [57, 2], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [110, 1], [120, 1], [111, 1], [111, 1], [111, 1], [111, 1], [111, 1], [111, 1], [111, 2], [111, 2], [111, 2], [111, 2], [111, 2], [111, 2], [111, 1], [111, 1], [111, 1], [111, 1], [111, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [112, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [54, 1], [113, 1], [113, 1], [113, 1], [114, 1], [114, 1], [115, 1], [116, 1], [116, 1], [117, 1], [117, 1], [118, 2], [119, 2], [119, 2], [121, 2], [122, 1], [123, 1], [123, 1], [124, 2], [125, 1], [30, 4], [167, 0], [167, 2], [168, 1], [168, 1], [168, 1], [168, 1]],
19
+ symbols_: { "error": 2, "document": 3, "content": 4, "EOF": 5, "headers": 6, "measures": 7, "newlines": 8, "NEWLINE": 9, "header": 10, "HEADER_TITLE": 11, "STRING": 12, "]": 13, "HEADER_SUBTITLE": 14, "HEADER_COMPOSER": 15, "HEADER_ARRANGER": 16, "HEADER_LYRICIST": 17, "HEADER_OPUS": 18, "HEADER_INSTRUMENT": 19, "HEADER_INSTRUMENT_STAFF": 20, "HEADER_GENRE": 21, "HEADER_STAVES": 22, "HEADER_MEASURES": 23, "HEADER_AUTOBEAM": 24, "measure_content": 25, "|": 26, "parts": 27, "annotations_opt": 28, "annotations": 29, "addlyrics_block": 30, "figures_block": 31, "part_voices": 32, "PART_SEP": 33, "part_start": 34, "voice_block": 35, "VOICE_SEP": 36, "voice_events": 37, "event": 38, "note_event": 39, "rest_event": 40, "context_event": 41, "grace_event": 42, "tuplet_event": 43, "tremolo_event": 44, "pitch_reset_event": 45, "barline_event": 46, "harmony_event": 47, "markup_event": 48, "dynamic_event": 49, "CMD_BAR": 50, "CMD_CHORDS": 51, "CMD_MARKUP": 52, "^": 53, "_": 54, "dynamic_mark": 55, "chord": 56, "duration": 57, "post_events": 58, "pitch": 59, "<": 60, "pitches": 61, ">": 62, "PITCH": 63, "octave": 64, "!": 65, "OCT_UP": 66, "OCT_DOWN": 67, "NUMBER": 68, "dots": 69, ".": 70, "REST_CHAR": 71, "SPACE_CHAR": 72, "clef_cmd": 73, "key_cmd": 74, "time_cmd": 75, "partial_cmd": 76, "tempo_cmd": 77, "staff_cmd": 78, "ottava_cmd": 79, "stem_cmd": 80, "numeric_time_sig_cmd": 81, "default_time_sig_cmd": 82, "omit_cmd": 83, "CMD_OMIT_TIME_SIG": 84, "CMD_UNDO_OMIT_TIME_SIG": 85, "CMD_OMIT_BAR_LINE": 86, "CMD_UNDO_OMIT_BAR_LINE": 87, "CMD_CLEF": 88, "CMD_KEY": 89, "pitch_name": 90, "mode": 91, "MODE_MAJOR": 92, "MODE_MINOR": 93, "CMD_TIME": 94, "/": 95, "CMD_NUMERIC_TIME_SIG": 96, "CMD_DEFAULT_TIME_SIG": 97, "CMD_PARTIAL": 98, "CMD_TEMPO": 99, "=": 100, "CMD_STAFF": 101, "CMD_OTTAVA": 102, "#": 103, "-": 104, "CMD_STEMUP": 105, "CMD_STEMDOWN": 106, "CMD_STEMNEUTRAL": 107, "CMD_GRACE": 108, "{": 109, "}": 110, "CMD_TIMES": 111, "CMD_TUPLET": 112, "tremolo_pitches": 113, "CMD_REPEAT": 114, "TREMOLO": 115, "post_event": 116, "articulation_mark": 117, "ornament_mark": 118, "hairpin_mark": 119, "pedal_mark": 120, "tie_mark": 121, "slur_mark": 122, "beam_mark": 123, "tremolo_mark": 124, "direction_mark": 125, "rest_mark": 126, "fingering_mark": 127, "fingering_number": 128, "navigation_mark": 129, "markup_mark": 130, "glissando_mark": 131, "CMD_REST": 132, "ART_STACCATO": 133, "ART_STACCATISSIMO": 134, "ART_TENUTO": 135, "ART_MARCATO": 136, "ART_ACCENT": 137, "ART_PORTATO": 138, "ORN_TRILL": 139, "ORN_TURN": 140, "ORN_MORDENT": 141, "ORN_PRALL": 142, "ORN_FERMATA": 143, "ORN_SHORTFERMATA": 144, "ORN_ARPEGGIO": 145, "ORN_BREATHE": 146, "DYN_PPP": 147, "DYN_PP": 148, "DYN_P": 149, "DYN_MP": 150, "DYN_MF": 151, "DYN_F": 152, "DYN_FF": 153, "DYN_FFF": 154, "DYN_SFZ": 155, "DYN_RFZ": 156, "DYN_SF": 157, "DYN_OTHER": 158, "DYN_FP": 159, "CMD_CRESC_BEGIN": 160, "CMD_DIM_BEGIN": 161, "CMD_DYNAMICS_END": 162, "CMD_SUSTAINON": 163, "CMD_SUSTAINOFF": 164, "~": 165, "(": 166, ")": 167, "[": 168, ":": 169, "CMD_CODA": 170, "CMD_SEGNO": 171, "CMD_GLISSANDO": 172, "CMD_ADDLYRICS": 173, "lyric_sequence": 174, "CMD_FIGURES": 175, "figure_sequence": 176, "CMD_FIGURES_BELOW": 177, "CMD_FIGURES_ABOVE": 178, "figure_item": 179, "FIG_OPEN": 180, "figure_lines": 181, "FIG_CLOSE": 182, "figure_duration_opt": 183, "FIG_SKIP": 184, "FIG_NUMBER": 185, "figure_dots": 186, "FIG_DOT": 187, "figure_line": 188, "figure_accidental_opt": 189, "FIG_BLANK": 190, "figure_accidental": 191, "FIG_SHARP": 192, "FIG_FLAT": 193, "FIG_NATURAL": 194, "lyric_item": 195, "LYRIC_WORD": 196, "LYRIC_HYPHEN": 197, "LYRIC_SKIP": 198, "LYRIC_EXTENDER": 199, "$accept": 0, "$end": 1 },
20
+ terminals_: { 2: "error", 5: "EOF", 9: "NEWLINE", 11: "HEADER_TITLE", 12: "STRING", 13: "]", 14: "HEADER_SUBTITLE", 15: "HEADER_COMPOSER", 16: "HEADER_ARRANGER", 17: "HEADER_LYRICIST", 18: "HEADER_OPUS", 19: "HEADER_INSTRUMENT", 20: "HEADER_INSTRUMENT_STAFF", 21: "HEADER_GENRE", 22: "HEADER_STAVES", 23: "HEADER_MEASURES", 24: "HEADER_AUTOBEAM", 26: "|", 33: "PART_SEP", 36: "VOICE_SEP", 50: "CMD_BAR", 51: "CMD_CHORDS", 52: "CMD_MARKUP", 53: "^", 54: "_", 60: "<", 62: ">", 63: "PITCH", 65: "!", 66: "OCT_UP", 67: "OCT_DOWN", 68: "NUMBER", 70: ".", 71: "REST_CHAR", 72: "SPACE_CHAR", 84: "CMD_OMIT_TIME_SIG", 85: "CMD_UNDO_OMIT_TIME_SIG", 86: "CMD_OMIT_BAR_LINE", 87: "CMD_UNDO_OMIT_BAR_LINE", 88: "CMD_CLEF", 89: "CMD_KEY", 92: "MODE_MAJOR", 93: "MODE_MINOR", 94: "CMD_TIME", 95: "/", 96: "CMD_NUMERIC_TIME_SIG", 97: "CMD_DEFAULT_TIME_SIG", 98: "CMD_PARTIAL", 99: "CMD_TEMPO", 100: "=", 101: "CMD_STAFF", 102: "CMD_OTTAVA", 103: "#", 104: "-", 105: "CMD_STEMUP", 106: "CMD_STEMDOWN", 107: "CMD_STEMNEUTRAL", 108: "CMD_GRACE", 109: "{", 110: "}", 111: "CMD_TIMES", 112: "CMD_TUPLET", 114: "CMD_REPEAT", 115: "TREMOLO", 132: "CMD_REST", 133: "ART_STACCATO", 134: "ART_STACCATISSIMO", 135: "ART_TENUTO", 136: "ART_MARCATO", 137: "ART_ACCENT", 138: "ART_PORTATO", 139: "ORN_TRILL", 140: "ORN_TURN", 141: "ORN_MORDENT", 142: "ORN_PRALL", 143: "ORN_FERMATA", 144: "ORN_SHORTFERMATA", 145: "ORN_ARPEGGIO", 146: "ORN_BREATHE", 147: "DYN_PPP", 148: "DYN_PP", 149: "DYN_P", 150: "DYN_MP", 151: "DYN_MF", 152: "DYN_F", 153: "DYN_FF", 154: "DYN_FFF", 155: "DYN_SFZ", 156: "DYN_RFZ", 157: "DYN_SF", 158: "DYN_OTHER", 159: "DYN_FP", 160: "CMD_CRESC_BEGIN", 161: "CMD_DIM_BEGIN", 162: "CMD_DYNAMICS_END", 163: "CMD_SUSTAINON", 164: "CMD_SUSTAINOFF", 165: "~", 166: "(", 167: ")", 168: "[", 169: ":", 170: "CMD_CODA", 171: "CMD_SEGNO", 172: "CMD_GLISSANDO", 173: "CMD_ADDLYRICS", 175: "CMD_FIGURES", 177: "CMD_FIGURES_BELOW", 178: "CMD_FIGURES_ABOVE", 180: "FIG_OPEN", 182: "FIG_CLOSE", 184: "FIG_SKIP", 185: "FIG_NUMBER", 187: "FIG_DOT", 190: "FIG_BLANK", 192: "FIG_SHARP", 193: "FIG_FLAT", 194: "FIG_NATURAL", 196: "LYRIC_WORD", 197: "LYRIC_HYPHEN", 198: "LYRIC_SKIP", 199: "LYRIC_EXTENDER" },
21
+ productions_: [0, [3, 2], [4, 2], [4, 3], [4, 3], [4, 4], [4, 2], [4, 1], [8, 1], [8, 2], [6, 1], [6, 2], [6, 2], [6, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 3], [10, 4], [10, 3], [10, 3], [10, 3], [10, 3], [7, 1], [7, 3], [7, 2], [25, 1], [28, 0], [28, 1], [29, 1], [29, 1], [29, 2], [29, 2], [29, 2], [27, 1], [27, 4], [34, 0], [32, 1], [32, 3], [35, 2], [37, 0], [37, 2], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [38, 1], [46, 2], [47, 2], [48, 2], [48, 3], [48, 3], [49, 1], [45, 1], [39, 3], [39, 3], [39, 2], [39, 2], [56, 3], [61, 1], [61, 2], [59, 3], [59, 2], [59, 2], [59, 1], [64, 1], [64, 1], [64, 2], [64, 2], [57, 2], [69, 0], [69, 2], [40, 3], [40, 3], [40, 2], [40, 2], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [41, 1], [83, 1], [83, 1], [83, 1], [83, 1], [73, 2], [74, 3], [90, 1], [91, 1], [91, 1], [75, 4], [81, 1], [82, 1], [76, 2], [77, 5], [77, 2], [77, 4], [78, 2], [79, 3], [79, 4], [79, 1], [80, 1], [80, 1], [80, 1], [42, 4], [42, 2], [42, 2], [43, 7], [43, 7], [113, 1], [113, 1], [44, 9], [44, 8], [44, 7], [58, 0], [58, 2], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [126, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 2], [117, 2], [117, 2], [117, 2], [117, 2], [117, 2], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [118, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [55, 1], [119, 1], [119, 1], [119, 1], [120, 1], [120, 1], [121, 1], [122, 1], [122, 1], [123, 1], [123, 1], [124, 2], [125, 2], [125, 2], [127, 2], [128, 1], [129, 1], [129, 1], [130, 2], [131, 1], [30, 4], [31, 4], [31, 4], [31, 4], [176, 0], [176, 2], [179, 4], [179, 2], [183, 0], [183, 2], [186, 0], [186, 2], [181, 1], [181, 2], [188, 2], [188, 2], [188, 1], [189, 0], [189, 1], [191, 1], [191, 1], [191, 1], [174, 0], [174, 2], [195, 1], [195, 1], [195, 1], [195, 1]],
22
22
  performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
23
23
  var $0 = $$.length - 1;
24
24
  switch (yystate) {
@@ -38,15 +38,15 @@ var localGrammar = function() {
38
38
  this.$ = { metadata: void 0, measures: $$[$0] };
39
39
  break;
40
40
  case 10:
41
- case 102:
42
- case 119:
41
+ case 109:
42
+ case 126:
43
43
  this.$ = $$[$0];
44
44
  break;
45
45
  case 11:
46
46
  this.$ = mergeHeaders($$[$0 - 1], $$[$0]);
47
47
  break;
48
48
  case 12:
49
- case 66:
49
+ case 68:
50
50
  this.$ = $$[$0 - 1];
51
51
  break;
52
52
  case 13:
@@ -98,7 +98,7 @@ var localGrammar = function() {
98
98
  this.$ = $$[$0] ? $$[$0 - 2].concat([$$[$0]]) : $$[$0 - 2];
99
99
  break;
100
100
  case 29:
101
- case 35:
101
+ case 37:
102
102
  this.$ = $$[$0 - 1];
103
103
  break;
104
104
  case 30:
@@ -130,171 +130,203 @@ var localGrammar = function() {
130
130
  this.$ = measure($$[$0], currentKey, currentTimeSig, partialDur ? true : void 0);
131
131
  break;
132
132
  case 31:
133
- this.$ = void 0;
133
+ this.$ = { lyrics: [], figures: [] };
134
134
  break;
135
135
  case 32:
136
+ case 224:
136
137
  this.$ = $$[$0];
137
138
  break;
138
139
  case 33:
139
- case 67:
140
- case 118:
141
- this.$ = [$$[$0]];
140
+ this.$ = { lyrics: [$$[$0]], figures: [] };
142
141
  break;
143
142
  case 34:
144
- case 68:
145
- case 124:
146
- case 200:
147
- this.$ = $$[$0 - 1].concat([$$[$0]]);
143
+ this.$ = { lyrics: [], figures: [$$[$0]] };
148
144
  break;
149
- case 36:
150
- this.$ = [part($$[$0])];
145
+ case 35:
146
+ this.$ = { lyrics: $$[$0 - 1].lyrics.concat([$$[$0]]), figures: $$[$0 - 1].figures };
151
147
  break;
152
- case 37:
153
- this.$ = $$[$0 - 3].concat([part($$[$0])]);
148
+ case 36:
149
+ this.$ = { lyrics: $$[$0 - 1].lyrics, figures: $$[$0 - 1].figures.concat([$$[$0]]) };
154
150
  break;
155
151
  case 38:
156
- currentStaff = 1;
157
- currentOttava = 0;
152
+ this.$ = [part($$[$0])];
158
153
  break;
159
154
  case 39:
160
- this.$ = [voice(currentStaff, $$[$0].events, $$[$0].lyrics)];
155
+ this.$ = $$[$0 - 3].concat([part($$[$0])]);
161
156
  break;
162
157
  case 40:
163
- this.$ = $$[$0 - 2].concat([voice(currentStaff, $$[$0].events, $$[$0].lyrics)]);
158
+ currentStaff = 1;
159
+ currentOttava = 0;
164
160
  break;
165
161
  case 41:
166
- this.$ = { events: $$[$0 - 1], lyrics: $$[$0] };
162
+ this.$ = [voice(currentStaff, $$[$0].events, $$[$0].lyrics, $$[$0].figures)];
167
163
  break;
168
164
  case 42:
169
- case 123:
170
- case 199:
171
- this.$ = [];
165
+ this.$ = $$[$0 - 2].concat([voice(currentStaff, $$[$0].events, $$[$0].lyrics, $$[$0].figures)]);
172
166
  break;
173
167
  case 43:
168
+ this.$ = { events: $$[$0 - 1], lyrics: $$[$0].lyrics, figures: $$[$0].figures };
169
+ break;
170
+ case 44:
171
+ case 130:
172
+ case 210:
173
+ case 228:
174
+ this.$ = [];
175
+ break;
176
+ case 45:
174
177
  this.$ = $$[$0] === null ? $$[$0 - 1] : $$[$0 - 1].concat(Array.isArray($$[$0]) ? $$[$0] : [$$[$0]]);
175
178
  break;
176
- case 55:
179
+ case 57:
177
180
  this.$ = barlineEvent($$[$0].slice(1, -1));
178
181
  break;
179
- case 56:
182
+ case 58:
180
183
  this.$ = harmonyEvent($$[$0].slice(1, -1));
181
184
  break;
182
- case 57:
185
+ case 59:
183
186
  this.$ = markupEvent(unq($$[$0]));
184
187
  break;
185
- case 58:
188
+ case 60:
186
189
  this.$ = markupEvent(unq($$[$0]), "above");
187
190
  break;
188
- case 59:
191
+ case 61:
189
192
  this.$ = markupEvent(unq($$[$0]), "below");
190
193
  break;
191
- case 60:
194
+ case 62:
192
195
  this.$ = dynamicEvent($$[$0].type);
193
196
  break;
194
- case 61:
197
+ case 63:
195
198
  this.$ = { type: "pitchReset" };
196
199
  break;
197
- case 62:
198
- case 63:
200
+ case 64:
201
+ case 65:
199
202
  currentDuration = $$[$0 - 1];
200
203
  this.$ = noteEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
201
204
  break;
202
- case 64:
203
- case 65:
205
+ case 66:
206
+ case 67:
204
207
  this.$ = noteEvent($$[$0 - 1], currentDuration, $$[$0]);
205
208
  break;
206
209
  case 69:
207
- this.$ = { ...parsePitch($$[$0 - 2], $$[$0 - 1]), courtesy: true };
210
+ case 125:
211
+ case 218:
212
+ this.$ = [$$[$0]];
208
213
  break;
209
214
  case 70:
210
- this.$ = { ...parsePitch($$[$0 - 1], 0), courtesy: true };
215
+ case 131:
216
+ case 211:
217
+ case 219:
218
+ case 229:
219
+ this.$ = $$[$0 - 1].concat([$$[$0]]);
211
220
  break;
212
221
  case 71:
213
- this.$ = parsePitch($$[$0 - 1], $$[$0]);
222
+ this.$ = { ...parsePitch($$[$0 - 2], $$[$0 - 1]), courtesy: true };
214
223
  break;
215
224
  case 72:
216
- this.$ = parsePitch($$[$0], 0);
225
+ this.$ = { ...parsePitch($$[$0 - 1], 0), courtesy: true };
217
226
  break;
218
227
  case 73:
219
- this.$ = 1;
228
+ this.$ = parsePitch($$[$0 - 1], $$[$0]);
220
229
  break;
221
230
  case 74:
222
- this.$ = -1;
231
+ this.$ = parsePitch($$[$0], 0);
223
232
  break;
224
233
  case 75:
225
- this.$ = $$[$0 - 1] + 1;
234
+ this.$ = 1;
226
235
  break;
227
236
  case 76:
228
- this.$ = $$[$0 - 1] - 1;
237
+ this.$ = -1;
229
238
  break;
230
239
  case 77:
231
- this.$ = duration(Number($$[$0 - 1]), $$[$0]);
240
+ this.$ = $$[$0 - 1] + 1;
232
241
  break;
233
242
  case 78:
234
- this.$ = 0;
243
+ this.$ = $$[$0 - 1] - 1;
235
244
  break;
236
245
  case 79:
237
- this.$ = $$[$0 - 1] + 1;
246
+ this.$ = duration(Number($$[$0 - 1]), $$[$0]);
238
247
  break;
239
248
  case 80:
249
+ case 216:
250
+ this.$ = 0;
251
+ break;
252
+ case 81:
253
+ case 217:
254
+ this.$ = $$[$0 - 1] + 1;
255
+ break;
256
+ case 82:
240
257
  currentDuration = $$[$0 - 1];
241
258
  this.$ = restEvent($$[$0 - 1], { fullMeasure: $$[$0 - 2] === "R" });
242
259
  break;
243
- case 81:
260
+ case 83:
244
261
  currentDuration = $$[$0 - 1];
245
262
  this.$ = restEvent($$[$0 - 1], { invisible: true });
246
263
  break;
247
- case 82:
264
+ case 84:
248
265
  this.$ = restEvent(currentDuration, { fullMeasure: $$[$0 - 1] === "R" });
249
266
  break;
250
- case 83:
267
+ case 85:
251
268
  this.$ = restEvent(currentDuration, { invisible: true });
252
269
  break;
253
- case 84:
270
+ case 86:
254
271
  this.$ = contextChange({ clef: $$[$0] });
255
272
  break;
256
- case 85:
273
+ case 87:
257
274
  this.$ = contextChange({ key: $$[$0] });
258
275
  break;
259
- case 86:
276
+ case 88:
260
277
  this.$ = contextChange({ time: $$[$0] });
261
278
  break;
262
- case 87:
279
+ case 89:
263
280
  this.$ = contextChange({ partial: $$[$0] });
264
281
  break;
265
- case 88:
282
+ case 90:
266
283
  this.$ = contextChange({ tempo: $$[$0] });
267
284
  break;
268
- case 89:
285
+ case 91:
269
286
  this.$ = contextChange({ staff: $$[$0] });
270
287
  break;
271
- case 90:
288
+ case 92:
272
289
  this.$ = contextChange({ ottava: $$[$0] });
273
290
  break;
274
- case 91:
291
+ case 93:
275
292
  this.$ = contextChange({ stemDirection: $$[$0] });
276
293
  break;
277
- case 92:
278
- case 93:
294
+ case 94:
295
+ case 95:
279
296
  this.$ = null;
280
297
  break;
281
- case 94:
298
+ case 96:
299
+ this.$ = contextChange({ omit: $$[$0] });
300
+ break;
301
+ case 97:
302
+ this.$ = { timeSignature: true };
303
+ break;
304
+ case 98:
305
+ this.$ = { timeSignature: false };
306
+ break;
307
+ case 99:
308
+ this.$ = { barLine: true };
309
+ break;
310
+ case 100:
311
+ this.$ = { barLine: false };
312
+ break;
313
+ case 101:
282
314
  this.$ = $$[$0].slice(1, -1);
283
315
  break;
284
- case 95:
316
+ case 102:
285
317
  currentKey = keySignature($$[$0 - 1].phonet, $$[$0 - 1].accidental, $$[$0]);
286
318
  this.$ = currentKey;
287
319
  break;
288
- case 96:
320
+ case 103:
289
321
  this.$ = parsePitchName($$[$0]);
290
322
  break;
291
- case 97:
323
+ case 104:
292
324
  this.$ = "major";
293
325
  break;
294
- case 98:
326
+ case 105:
295
327
  this.$ = "minor";
296
328
  break;
297
- case 99:
329
+ case 106:
298
330
  const num = Number($$[$0 - 2]);
299
331
  const den = Number($$[$0]);
300
332
  const timeSig = fraction(num, den);
@@ -308,237 +340,280 @@ var localGrammar = function() {
308
340
  currentTimeSig = timeSig;
309
341
  this.$ = currentTimeSig;
310
342
  break;
311
- case 100:
343
+ case 107:
312
344
  numericTimeSignature = true;
313
345
  this.$ = null;
314
346
  break;
315
- case 101:
347
+ case 108:
316
348
  numericTimeSignature = false;
317
349
  this.$ = null;
318
350
  break;
319
- case 103:
351
+ case 110:
320
352
  this.$ = { text: unq($$[$0 - 3]), beat: $$[$0 - 2], bpm: Number($$[$0]) };
321
353
  break;
322
- case 104:
354
+ case 111:
323
355
  this.$ = { text: unq($$[$0]) };
324
356
  break;
325
- case 105:
357
+ case 112:
326
358
  this.$ = { beat: $$[$0 - 2], bpm: Number($$[$0]) };
327
359
  break;
328
- case 106:
360
+ case 113:
329
361
  currentStaff = Number($$[$0].slice(1, -1));
330
362
  this.$ = currentStaff;
331
363
  break;
332
- case 107:
364
+ case 114:
333
365
  currentOttava = Number($$[$0]);
334
366
  this.$ = currentOttava;
335
367
  break;
336
- case 108:
368
+ case 115:
337
369
  currentOttava = -Number($$[$0]);
338
370
  this.$ = currentOttava;
339
371
  break;
340
- case 109:
372
+ case 116:
341
373
  currentOttava = 0;
342
374
  this.$ = 0;
343
375
  break;
344
- case 110:
376
+ case 117:
345
377
  this.$ = "up";
346
378
  break;
347
- case 111:
379
+ case 118:
348
380
  this.$ = "down";
349
381
  break;
350
- case 112:
382
+ case 119:
351
383
  this.$ = "auto";
352
384
  break;
353
- case 113:
385
+ case 120:
354
386
  this.$ = $$[$0 - 1].map((e) => e.type === "note" || e.type === "rest" ? { ...e, grace: true } : e);
355
387
  break;
356
- case 114:
357
- case 115:
388
+ case 121:
389
+ case 122:
358
390
  this.$ = { ...$$[$0], grace: true };
359
391
  break;
360
- case 116:
392
+ case 123:
361
393
  this.$ = timesEvent(fraction(Number($$[$0 - 5]), Number($$[$0 - 3])), $$[$0 - 1].filter((e) => e.type === "note" || e.type === "rest" || e.type === "context"));
362
394
  break;
363
- case 117:
395
+ case 124:
364
396
  this.$ = tupletEvent(fraction(Number($$[$0 - 3]), Number($$[$0 - 5])), $$[$0 - 1].filter((e) => e.type === "note" || e.type === "rest" || e.type === "context"));
365
397
  break;
366
- case 120:
398
+ case 127:
367
399
  currentDuration = $$[$0 - 3];
368
400
  this.$ = tremoloEvent($$[$0 - 4], $$[$0 - 2], Number($$[$0 - 6]), $$[$0 - 3].division);
369
401
  break;
370
- case 121:
402
+ case 128:
371
403
  currentDuration = $$[$0 - 2];
372
404
  this.$ = tremoloEvent($$[$0 - 3], $$[$0 - 1], Number($$[$0 - 5]), $$[$0 - 2].division);
373
405
  break;
374
- case 122:
406
+ case 129:
375
407
  this.$ = tremoloEvent($$[$0 - 2], $$[$0 - 1], Number($$[$0 - 4]), currentDuration.division);
376
408
  break;
377
- case 141:
409
+ case 148:
378
410
  this.$ = { pitchedRest: true };
379
411
  break;
380
- case 142:
381
- case 148:
412
+ case 149:
382
413
  case 155:
414
+ case 162:
383
415
  this.$ = articulation("staccato");
384
416
  break;
385
- case 143:
386
- case 152:
417
+ case 150:
418
+ case 159:
387
419
  this.$ = articulation("staccatissimo");
388
420
  break;
389
- case 144:
390
- case 153:
391
- case 156:
421
+ case 151:
422
+ case 160:
423
+ case 163:
392
424
  this.$ = articulation("tenuto");
393
425
  break;
394
- case 145:
395
- case 150:
426
+ case 152:
396
427
  case 157:
428
+ case 164:
397
429
  this.$ = articulation("marcato");
398
430
  break;
399
- case 146:
400
- case 151:
401
- case 154:
431
+ case 153:
432
+ case 158:
433
+ case 161:
402
434
  this.$ = articulation("accent");
403
435
  break;
404
- case 147:
405
- case 149:
406
- case 158:
436
+ case 154:
437
+ case 156:
438
+ case 165:
407
439
  this.$ = articulation("portato");
408
440
  break;
409
- case 159:
441
+ case 166:
410
442
  this.$ = ornament("trill");
411
443
  break;
412
- case 160:
444
+ case 167:
413
445
  this.$ = ornament("turn");
414
446
  break;
415
- case 161:
447
+ case 168:
416
448
  this.$ = ornament("mordent");
417
449
  break;
418
- case 162:
450
+ case 169:
419
451
  this.$ = ornament("prall");
420
452
  break;
421
- case 163:
453
+ case 170:
422
454
  this.$ = ornament("fermata");
423
455
  break;
424
- case 164:
456
+ case 171:
425
457
  this.$ = ornament("shortFermata");
426
458
  break;
427
- case 165:
459
+ case 172:
428
460
  this.$ = ornament("arpeggio");
429
461
  break;
430
- case 166:
462
+ case 173:
431
463
  this.$ = ornament("breath");
432
464
  break;
433
- case 167:
465
+ case 174:
434
466
  this.$ = dynamic("ppp");
435
467
  break;
436
- case 168:
468
+ case 175:
437
469
  this.$ = dynamic("pp");
438
470
  break;
439
- case 169:
471
+ case 176:
440
472
  this.$ = dynamic("p");
441
473
  break;
442
- case 170:
474
+ case 177:
443
475
  this.$ = dynamic("mp");
444
476
  break;
445
- case 171:
477
+ case 178:
446
478
  this.$ = dynamic("mf");
447
479
  break;
448
- case 172:
480
+ case 179:
449
481
  this.$ = dynamic("f");
450
482
  break;
451
- case 173:
483
+ case 180:
452
484
  this.$ = dynamic("ff");
453
485
  break;
454
- case 174:
486
+ case 181:
455
487
  this.$ = dynamic("fff");
456
488
  break;
457
- case 175:
458
- case 177:
489
+ case 182:
459
490
  this.$ = dynamic("sfz");
460
491
  break;
461
- case 176:
492
+ case 183:
462
493
  this.$ = dynamic("rfz");
463
494
  break;
464
- case 178:
495
+ case 184:
496
+ this.$ = dynamic("sf");
497
+ break;
498
+ case 185:
499
+ this.$ = dynamic($$[$0].slice(1).toLowerCase());
500
+ break;
501
+ case 186:
465
502
  this.$ = dynamic("fp");
466
503
  break;
467
- case 179:
504
+ case 187:
468
505
  this.$ = hairpin("crescendoStart");
469
506
  break;
470
- case 180:
507
+ case 188:
471
508
  this.$ = hairpin("diminuendoStart");
472
509
  break;
473
- case 181:
510
+ case 189:
474
511
  this.$ = hairpin("crescendoEnd");
475
512
  break;
476
- case 182:
513
+ case 190:
477
514
  this.$ = pedal("sustainOn");
478
515
  break;
479
- case 183:
516
+ case 191:
480
517
  this.$ = pedal("sustainOff");
481
518
  break;
482
- case 184:
519
+ case 192:
483
520
  this.$ = tie(true);
484
521
  break;
485
- case 185:
522
+ case 193:
486
523
  this.$ = slur(true);
487
524
  break;
488
- case 186:
525
+ case 194:
489
526
  this.$ = slur(false);
490
527
  break;
491
- case 187:
528
+ case 195:
492
529
  this.$ = beam(true);
493
530
  break;
494
- case 188:
531
+ case 196:
495
532
  this.$ = beam(false);
496
533
  break;
497
- case 189:
534
+ case 197:
498
535
  this.$ = { tremolo: Number($$[$0]) };
499
536
  break;
500
- case 190:
537
+ case 198:
501
538
  this.$ = { ...$$[$0], placement: "above" };
502
539
  break;
503
- case 191:
540
+ case 199:
504
541
  this.$ = { ...$$[$0], placement: "below" };
505
542
  break;
506
- case 192:
507
- case 193:
543
+ case 200:
544
+ case 201:
508
545
  const n = Number($$[$0]);
509
546
  if (n >= 1 && n <= 5) this.$ = fingering(n);
510
547
  else this.$ = null;
511
548
  break;
512
- case 194:
549
+ case 202:
513
550
  this.$ = navigation("coda");
514
551
  break;
515
- case 195:
552
+ case 203:
516
553
  this.$ = navigation("segno");
517
554
  break;
518
- case 196:
555
+ case 204:
519
556
  this.$ = markupMark(unq($$[$0]));
520
557
  break;
521
- case 197:
558
+ case 205:
522
559
  this.$ = glissando();
523
560
  break;
524
- case 198:
561
+ case 206:
525
562
  this.$ = addlyricsLane($$[$0 - 1]);
526
563
  break;
527
- case 201:
564
+ case 207:
565
+ case 208:
566
+ this.$ = figuresLane("below", $$[$0 - 1]);
567
+ break;
568
+ case 209:
569
+ this.$ = figuresLane("above", $$[$0 - 1]);
570
+ break;
571
+ case 212:
572
+ this.$ = { lines: $$[$0 - 2], duration: $$[$0] };
573
+ break;
574
+ case 213:
575
+ this.$ = { duration: $$[$0] };
576
+ break;
577
+ case 214:
578
+ case 223:
579
+ this.$ = void 0;
580
+ break;
581
+ case 215:
582
+ this.$ = { division: Number($$[$0 - 1]), dots: $$[$0] };
583
+ break;
584
+ case 220:
585
+ this.$ = $$[$0] ? { number: Number($$[$0 - 1]), accidental: $$[$0] } : { number: Number($$[$0 - 1]) };
586
+ break;
587
+ case 221:
588
+ this.$ = $$[$0] ? { accidental: $$[$0] } : {};
589
+ break;
590
+ case 222:
591
+ this.$ = { accidental: $$[$0] };
592
+ break;
593
+ case 225:
594
+ this.$ = "sharp";
595
+ break;
596
+ case 226:
597
+ this.$ = "flat";
598
+ break;
599
+ case 227:
600
+ this.$ = "natural";
601
+ break;
602
+ case 230:
528
603
  this.$ = { text: $$[$0].charAt(0) === '"' ? unq($$[$0]) : $$[$0] };
529
604
  break;
530
- case 202:
605
+ case 231:
531
606
  this.$ = { hyphen: true };
532
607
  break;
533
- case 203:
608
+ case 232:
534
609
  this.$ = { skip: true };
535
610
  break;
536
- case 204:
611
+ case 233:
537
612
  this.$ = { extend: true };
538
613
  break;
539
614
  }
540
615
  },
541
- table: [o($V0, $V1, { 3: 1, 4: 2, 6: 3, 8: 4, 7: 5, 10: 6, 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 9: [1, 7], 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 1: [3] }, { 5: [1, 25] }, o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 7: 26, 8: 27, 10: 28, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 10: 6, 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 6: 30, 7: 31, 9: $Vf, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 7], 26: $Vg }, o($Vh, [2, 10]), o($Vh, [2, 8]), o($Vi, [2, 27]), { 12: [1, 34] }, { 12: [1, 35] }, { 12: [1, 36] }, { 12: [1, 37] }, { 12: [1, 38] }, { 12: [1, 39] }, { 12: [1, 40] }, { 12: [1, 41] }, { 12: [1, 42] }, { 12: [1, 43] }, { 12: [1, 44] }, { 12: [1, 45] }, o($Vi, [2, 30], { 32: [1, 46] }), o($Vj, [2, 36], { 35: $Vk }), o($Vl, [2, 39]), o($Vl, [2, 31], { 28: 48, 37: 49, 29: 50, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 30: 62, 55: 63, 58: 64, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 54: 87, 9: $Vm, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 166: $VY }), { 1: [2, 1] }, { 5: [2, 2], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 7: 115, 9: $Vf }), o($Vh, [2, 11]), o($VZ, [2, 12], { 10: 116, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 10: 28, 7: 117, 8: 118, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 6], 26: $Vg }, o($Vh, [2, 9]), o([9, 32, 35, 49, 50, 51, 52, 53, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 105, 106, 108, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 166], $V1, { 27: 21, 31: 22, 34: 23, 36: 24, 25: 119, 5: $V_, 26: $V_ }), { 13: [1, 120] }, { 13: [1, 121] }, { 13: [1, 122] }, { 13: [1, 123] }, { 13: [1, 124] }, { 13: [1, 125] }, { 13: [1, 126] }, { 12: [1, 128], 13: [1, 127] }, { 13: [1, 129] }, { 13: [1, 130] }, { 13: [1, 131] }, { 13: [1, 132] }, o($VZ, [2, 38], { 33: 133 }), o($VZ, $V1, { 36: 24, 34: 134 }), o($Vl, [2, 41]), o($V$, [2, 43]), o($Vl, [2, 32], { 30: 135, 9: [1, 136], 166: $VY }), o($V$, [2, 44]), o($V$, [2, 45]), o($V$, [2, 46]), o($V$, [2, 47]), o($V$, [2, 48]), o($V$, [2, 49]), o($V$, [2, 50]), o($V$, [2, 51]), o($V$, [2, 52]), o($V$, [2, 53]), o($V$, [2, 54]), o($V01, [2, 33]), o($V11, $V21, { 56: 137, 57: 138, 67: $V31 }), o($V11, $V21, { 56: 140, 57: 141, 67: $V31 }), o($V11, $V21, { 56: 142, 57: 143, 67: $V31 }), o($V11, $V21, { 56: 144, 57: 145, 67: $V31 }), o($V$, [2, 84]), o($V$, [2, 85]), o($V$, [2, 86]), o($V$, [2, 87]), o($V$, [2, 88]), o($V$, [2, 89]), o($V$, [2, 90]), o($V$, [2, 91]), o($V$, [2, 92]), o($V$, [2, 93]), { 38: 147, 39: 148, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 103: [1, 146] }, { 67: [1, 149] }, { 67: [1, 150] }, { 109: [1, 151] }, o($V$, [2, 61]), { 12: [1, 152] }, { 12: [1, 153] }, { 12: [1, 154] }, { 51: [1, 155] }, { 51: [1, 156] }, o($V$, [2, 60]), { 103: [1, 157] }, { 58: 159, 60: 158, 62: $Vt }, o($V41, [2, 72], { 63: 160, 64: [1, 161], 65: [1, 162], 66: [1, 163] }), { 12: [1, 164] }, { 62: [1, 166], 84: 165 }, { 67: [1, 167] }, { 56: 168, 67: $V31 }, { 12: [1, 169], 56: 170, 67: $V31 }, { 12: [1, 171] }, o($V$, [2, 109], { 97: [1, 172] }), o($V$, [2, 110]), o($V$, [2, 111]), o($V$, [2, 112]), o($V$, [2, 100]), o($V$, [2, 101]), o($V41, [2, 167]), o($V41, [2, 168]), o($V41, [2, 169]), o($V41, [2, 170]), o($V41, [2, 171]), o($V41, [2, 172]), o($V41, [2, 173]), o($V41, [2, 174]), o($V41, [2, 175]), o($V41, [2, 176]), o($V41, [2, 177]), o($V41, [2, 178]), { 5: [2, 3], 26: $Vg }, o($Vh, [2, 13]), { 5: [2, 4], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 31: 22, 34: 23, 36: 24, 7: 173, 9: $Vf }), o($Vi, [2, 28]), o($Vh, [2, 14]), o($Vh, [2, 15]), o($Vh, [2, 16]), o($Vh, [2, 17]), o($Vh, [2, 18]), o($Vh, [2, 19]), o($Vh, [2, 20]), o($Vh, [2, 21]), { 13: [1, 174] }, o($Vh, [2, 23]), o($Vh, [2, 24]), o($Vh, [2, 25]), o($Vh, [2, 26]), o($VZ, $V1, { 34: 23, 36: 24, 31: 175 }), o($Vl, [2, 40]), o($V01, [2, 34]), o($V01, [2, 35]), o($V41, $V21, { 57: 176 }), o($V51, [2, 64], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($VG1, [2, 78], { 68: 230 }), o($V41, $V21, { 57: 231 }), o($V51, [2, 65], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, $V21, { 57: 232 }), o($V51, [2, 82], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, $V21, { 57: 233 }), o($V51, [2, 83], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($VH1, $V1, { 36: 234 }), o($V$, [2, 114]), o($V$, [2, 115]), { 89: [1, 235] }, { 89: [1, 236] }, { 67: [1, 237] }, o($V$, [2, 55]), o($V$, [2, 56]), o($V$, [2, 57]), { 12: [1, 238] }, { 12: [1, 239] }, o($VI1, [2, 199], { 167: 240 }), { 58: 242, 61: [1, 241], 62: $Vt }, o($VJ1, [2, 67]), o($V41, [2, 71], { 64: [1, 243], 65: [1, 244], 66: [1, 245] }), o($V41, [2, 70]), o($VK1, [2, 73]), o($VK1, [2, 74]), o($V$, [2, 94]), { 85: 246, 86: [1, 247], 87: [1, 248] }, o([86, 87], [2, 96]), { 89: [1, 249] }, o($V$, [2, 102]), o($V$, [2, 104], { 56: 250, 67: $V31 }), { 94: [1, 251] }, o($V$, [2, 106]), { 67: [1, 252], 98: [1, 253] }, { 5: [2, 5], 26: $Vg }, o($Vh, [2, 22]), o($Vj, [2, 37], { 35: $Vk }), o($V51, [2, 62], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, [2, 124]), o($V41, [2, 125]), o($V41, [2, 126]), o($V41, [2, 127]), o($V41, [2, 128]), o($V41, [2, 129]), o($V41, [2, 130]), o($V41, [2, 131]), o($V41, [2, 132]), o($V41, [2, 133]), o($V41, [2, 134]), o($V41, [2, 135]), o($V41, [2, 136]), o($V41, [2, 137]), o($V41, [2, 138]), o($V41, [2, 139]), o($V41, [2, 140]), o($V41, [2, 142]), o($V41, [2, 143]), o($V41, [2, 144]), o($V41, [2, 145]), o($V41, [2, 146]), o($V41, [2, 147]), o([5, 9, 13, 26, 32, 35, 49, 50, 51, 59, 62, 70, 71, 82, 83, 88, 90, 91, 92, 93, 95, 96, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], [2, 156], { 52: [1, 256], 53: [1, 255], 61: [1, 257], 64: [1, 258], 67: [1, 260], 69: [1, 254], 98: [1, 259] }), o($V41, [2, 154]), o($V41, [2, 155]), o($V51, [2, 157], { 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 110: 261, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V51, [2, 158], { 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 110: 262, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V41, [2, 159]), o($V41, [2, 160]), o($V41, [2, 161]), o($V41, [2, 162]), o($V41, [2, 163]), o($V41, [2, 164]), o($V41, [2, 165]), o($V41, [2, 166]), o($V41, [2, 179]), o($V41, [2, 180]), o($V41, [2, 181]), o($V41, [2, 182]), o($V41, [2, 183]), o($V41, [2, 184]), o($V41, [2, 185]), o($V41, [2, 186]), o($V41, [2, 187]), o($V41, [2, 188]), { 67: [1, 263] }, o($V41, [2, 141]), o($V41, [2, 193]), o($V41, [2, 194]), o($V41, [2, 195]), { 12: [1, 264] }, o($V41, [2, 197]), o([5, 9, 13, 26, 32, 35, 49, 50, 51, 52, 53, 59, 61, 62, 67, 70, 71, 82, 83, 88, 90, 91, 92, 93, 94, 95, 96, 98, 99, 100, 101, 102, 104, 105, 106, 108, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166], [2, 77], { 69: [1, 265] }), o($V51, [2, 63], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V51, [2, 80], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), o($V51, [2, 81], { 110: 177, 111: 178, 112: 179, 54: 180, 113: 181, 114: 182, 115: 183, 116: 184, 117: 185, 118: 186, 119: 187, 120: 188, 121: 189, 122: 190, 123: 191, 124: 192, 125: 193, 13: $V61, 51: $V71, 52: $V81, 53: $V91, 61: $Va1, 67: $Vb1, 69: $Vc1, 98: $Vd1, 126: $Ve1, 127: $Vf1, 128: $Vg1, 129: $Vh1, 130: $Vi1, 131: $Vj1, 132: $Vk1, 133: $Vl1, 134: $Vm1, 135: $Vn1, 136: $Vo1, 137: $Vp1, 138: $Vq1, 139: $Vr1, 140: $Vs1, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX, 153: $Vt1, 154: $Vu1, 155: $Vv1, 156: $Vw1, 157: $Vx1, 158: $Vy1, 159: $Vz1, 160: $VA1, 161: $VB1, 162: $VC1, 163: $VD1, 164: $VE1, 165: $VF1 }), { 9: $Vm, 37: 49, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: 87, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 104: [1, 266], 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX }, { 67: [1, 267] }, { 67: [1, 268] }, { 103: [1, 269] }, o($V$, [2, 58]), o($V$, [2, 59]), { 104: [1, 270], 168: 271, 169: [1, 272], 170: [1, 273], 171: [1, 274], 172: [1, 275] }, o($V41, [2, 66]), o($VJ1, [2, 68]), o($V41, [2, 69]), o($VK1, [2, 75]), o($VK1, [2, 76]), o($V$, [2, 95]), o($V$, [2, 97]), o($V$, [2, 98]), { 67: [1, 276] }, { 94: [1, 277] }, { 67: [1, 278] }, o($V$, [2, 107]), { 67: [1, 279] }, o($V41, [2, 148]), o($V41, [2, 149]), o($V41, [2, 150]), o($V41, [2, 151]), o($V41, [2, 152]), o($V41, [2, 153]), o($V41, [2, 192]), o($V41, [2, 190]), o($V41, [2, 191]), o($V41, [2, 189]), o($V41, [2, 196]), o($VG1, [2, 79]), o($V$, [2, 113]), { 103: [1, 280] }, { 103: [1, 281] }, { 55: 284, 58: 283, 59: $Vs, 62: $Vt, 107: 282 }, o($V01, [2, 198]), o($VI1, [2, 200]), o($VI1, [2, 201]), o($VI1, [2, 202]), o($VI1, [2, 203]), o($VI1, [2, 204]), o($V$, [2, 99]), { 67: [1, 285] }, o($V$, [2, 105]), o($V$, [2, 108]), o($VH1, $V1, { 36: 286 }), o($VH1, $V1, { 36: 287 }), { 55: 284, 56: 288, 58: 283, 59: $Vs, 62: $Vt, 67: $V31, 107: 289 }, o($VL1, [2, 118]), o($VL1, [2, 119]), o($V$, [2, 103]), { 9: $Vm, 37: 49, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: 87, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 104: [1, 290], 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX }, { 9: $Vm, 37: 49, 38: 51, 39: 52, 40: 53, 41: 54, 42: 55, 43: 56, 44: 57, 45: 58, 46: 59, 47: 60, 48: 61, 49: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: 87, 55: 63, 58: 64, 59: $Vs, 62: $Vt, 70: $Vu, 71: $Vv, 72: 67, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: $Vw, 83: $Vx, 88: $Vy, 90: $Vz, 91: $VA, 92: $VB, 93: $VC, 95: $VD, 96: $VE, 99: $VF, 100: $VG, 101: $VH, 102: $VI, 104: [1, 291], 105: $VJ, 106: $VK, 108: $VL, 141: $VM, 142: $VN, 143: $VO, 144: $VP, 145: $VQ, 146: $VR, 147: $VS, 148: $VT, 149: $VU, 150: $VV, 151: $VW, 152: $VX }, { 55: 284, 58: 283, 59: $Vs, 62: $Vt, 107: 292 }, { 104: [1, 293] }, o($V$, [2, 116]), o($V$, [2, 117]), { 56: 294, 67: $V31, 104: [1, 295] }, o($V$, [2, 122]), { 104: [1, 296] }, o($V$, [2, 121]), o($V$, [2, 120])],
616
+ table: [o($V0, $V1, { 3: 1, 4: 2, 6: 3, 8: 4, 7: 5, 10: 6, 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 9: [1, 7], 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 1: [3] }, { 5: [1, 25] }, o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 7: 26, 8: 27, 10: 28, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 10: 6, 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 6: 30, 7: 31, 9: $Vf, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 7], 26: $Vg }, o($Vh, [2, 10]), o($Vh, [2, 8]), o($Vi, [2, 27]), { 12: [1, 34] }, { 12: [1, 35] }, { 12: [1, 36] }, { 12: [1, 37] }, { 12: [1, 38] }, { 12: [1, 39] }, { 12: [1, 40] }, { 12: [1, 41] }, { 12: [1, 42] }, { 12: [1, 43] }, { 12: [1, 44] }, { 12: [1, 45] }, o($Vi, [2, 30], { 33: [1, 46] }), o($Vj, [2, 38], { 36: $Vk }), o($Vl, [2, 41]), o($Vl, [2, 31], { 28: 48, 38: 49, 29: 50, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 30: 62, 31: 63, 56: 64, 59: 65, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 55: 89, 9: $Vm, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 173: $V11, 175: $V21, 177: $V31, 178: $V41 }), { 1: [2, 1] }, { 5: [2, 2], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 7: 125, 9: $Vf }), o($Vh, [2, 11]), o($V51, [2, 12], { 10: 126, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 10: 28, 7: 127, 8: 128, 9: $Ve, 11: $V2, 14: $V3, 15: $V4, 16: $V5, 17: $V6, 18: $V7, 19: $V8, 20: $V9, 21: $Va, 22: $Vb, 23: $Vc, 24: $Vd }), { 5: [2, 6], 26: $Vg }, o($Vh, [2, 9]), o([9, 33, 36, 50, 51, 52, 53, 54, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 111, 112, 114, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 173, 175, 177, 178], $V1, { 27: 21, 32: 22, 35: 23, 37: 24, 25: 129, 5: $V61, 26: $V61 }), { 13: [1, 130] }, { 13: [1, 131] }, { 13: [1, 132] }, { 13: [1, 133] }, { 13: [1, 134] }, { 13: [1, 135] }, { 13: [1, 136] }, { 12: [1, 138], 13: [1, 137] }, { 13: [1, 139] }, { 13: [1, 140] }, { 13: [1, 141] }, { 13: [1, 142] }, o($V51, [2, 40], { 34: 143 }), o($V51, $V1, { 37: 24, 35: 144 }), o($Vl, [2, 43]), o($V71, [2, 45]), o($Vl, [2, 32], { 30: 145, 31: 146, 9: [1, 147], 173: $V11, 175: $V21, 177: $V31, 178: $V41 }), o($V71, [2, 46]), o($V71, [2, 47]), o($V71, [2, 48]), o($V71, [2, 49]), o($V71, [2, 50]), o($V71, [2, 51]), o($V71, [2, 52]), o($V71, [2, 53]), o($V71, [2, 54]), o($V71, [2, 55]), o($V71, [2, 56]), o($V81, [2, 33]), o($V81, [2, 34]), o($V91, $Va1, { 57: 148, 58: 149, 68: $Vb1 }), o($V91, $Va1, { 57: 151, 58: 152, 68: $Vb1 }), o($V91, $Va1, { 57: 153, 58: 154, 68: $Vb1 }), o($V91, $Va1, { 57: 155, 58: 156, 68: $Vb1 }), o($V71, [2, 86]), o($V71, [2, 87]), o($V71, [2, 88]), o($V71, [2, 89]), o($V71, [2, 90]), o($V71, [2, 91]), o($V71, [2, 92]), o($V71, [2, 93]), o($V71, [2, 94]), o($V71, [2, 95]), o($V71, [2, 96]), { 39: 158, 40: 159, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 109: [1, 157] }, { 68: [1, 160] }, { 68: [1, 161] }, { 115: [1, 162] }, o($V71, [2, 63]), { 12: [1, 163] }, { 12: [1, 164] }, { 12: [1, 165] }, { 52: [1, 166] }, { 52: [1, 167] }, o($V71, [2, 62]), { 109: [1, 168] }, { 109: [1, 169] }, { 109: [1, 170] }, { 109: [1, 171] }, { 59: 173, 61: 172, 63: $Vt }, o($Vc1, [2, 74], { 64: 174, 65: [1, 175], 66: [1, 176], 67: [1, 177] }), { 12: [1, 178] }, { 63: [1, 180], 90: 179 }, { 68: [1, 181] }, { 57: 182, 68: $Vb1 }, { 12: [1, 183], 57: 184, 68: $Vb1 }, { 12: [1, 185] }, o($V71, [2, 116], { 103: [1, 186] }), o($V71, [2, 117]), o($V71, [2, 118]), o($V71, [2, 119]), o($V71, [2, 107]), o($V71, [2, 108]), o($V71, [2, 97]), o($V71, [2, 98]), o($V71, [2, 99]), o($V71, [2, 100]), o($Vc1, [2, 174]), o($Vc1, [2, 175]), o($Vc1, [2, 176]), o($Vc1, [2, 177]), o($Vc1, [2, 178]), o($Vc1, [2, 179]), o($Vc1, [2, 180]), o($Vc1, [2, 181]), o($Vc1, [2, 182]), o($Vc1, [2, 183]), o($Vc1, [2, 184]), o($Vc1, [2, 185]), o($Vc1, [2, 186]), { 5: [2, 3], 26: $Vg }, o($Vh, [2, 13]), { 5: [2, 4], 26: $Vg }, o($V0, $V1, { 25: 8, 27: 21, 32: 22, 35: 23, 37: 24, 7: 187, 9: $Vf }), o($Vi, [2, 28]), o($Vh, [2, 14]), o($Vh, [2, 15]), o($Vh, [2, 16]), o($Vh, [2, 17]), o($Vh, [2, 18]), o($Vh, [2, 19]), o($Vh, [2, 20]), o($Vh, [2, 21]), { 13: [1, 188] }, o($Vh, [2, 23]), o($Vh, [2, 24]), o($Vh, [2, 25]), o($Vh, [2, 26]), o($V51, $V1, { 35: 23, 37: 24, 32: 189 }), o($Vl, [2, 42]), o($V81, [2, 35]), o($V81, [2, 36]), o($V81, [2, 37]), o($Vc1, $Va1, { 58: 190 }), o($Vd1, [2, 66], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($VO1, [2, 80], { 69: 244 }), o($Vc1, $Va1, { 58: 245 }), o($Vd1, [2, 67], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, $Va1, { 58: 246 }), o($Vd1, [2, 84], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, $Va1, { 58: 247 }), o($Vd1, [2, 85], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($VP1, $V1, { 37: 248 }), o($V71, [2, 121]), o($V71, [2, 122]), { 95: [1, 249] }, { 95: [1, 250] }, { 68: [1, 251] }, o($V71, [2, 57]), o($V71, [2, 58]), o($V71, [2, 59]), { 12: [1, 252] }, { 12: [1, 253] }, o($VQ1, [2, 228], { 174: 254 }), o($VR1, $VS1, { 176: 255 }), o($VR1, $VS1, { 176: 256 }), o($VR1, $VS1, { 176: 257 }), { 59: 259, 62: [1, 258], 63: $Vt }, o($VT1, [2, 69]), o($Vc1, [2, 73], { 65: [1, 260], 66: [1, 261], 67: [1, 262] }), o($Vc1, [2, 72]), o($VU1, [2, 75]), o($VU1, [2, 76]), o($V71, [2, 101]), { 91: 263, 92: [1, 264], 93: [1, 265] }, o([92, 93], [2, 103]), { 95: [1, 266] }, o($V71, [2, 109]), o($V71, [2, 111], { 57: 267, 68: $Vb1 }), { 100: [1, 268] }, o($V71, [2, 113]), { 68: [1, 269], 104: [1, 270] }, { 5: [2, 5], 26: $Vg }, o($Vh, [2, 22]), o($Vj, [2, 39], { 36: $Vk }), o($Vd1, [2, 64], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, [2, 131]), o($Vc1, [2, 132]), o($Vc1, [2, 133]), o($Vc1, [2, 134]), o($Vc1, [2, 135]), o($Vc1, [2, 136]), o($Vc1, [2, 137]), o($Vc1, [2, 138]), o($Vc1, [2, 139]), o($Vc1, [2, 140]), o($Vc1, [2, 141]), o($Vc1, [2, 142]), o($Vc1, [2, 143]), o($Vc1, [2, 144]), o($Vc1, [2, 145]), o($Vc1, [2, 146]), o($Vc1, [2, 147]), o($Vc1, [2, 149]), o($Vc1, [2, 150]), o($Vc1, [2, 151]), o($Vc1, [2, 152]), o($Vc1, [2, 153]), o($Vc1, [2, 154]), o([5, 9, 13, 26, 33, 36, 50, 51, 52, 60, 63, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 101, 102, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], [2, 163], { 53: [1, 273], 54: [1, 272], 62: [1, 274], 65: [1, 275], 68: [1, 277], 70: [1, 271], 104: [1, 276] }), o($Vc1, [2, 161]), o($Vc1, [2, 162]), o($Vd1, [2, 164], { 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 116: 278, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vd1, [2, 165], { 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 116: 279, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vc1, [2, 166]), o($Vc1, [2, 167]), o($Vc1, [2, 168]), o($Vc1, [2, 169]), o($Vc1, [2, 170]), o($Vc1, [2, 171]), o($Vc1, [2, 172]), o($Vc1, [2, 173]), o($Vc1, [2, 187]), o($Vc1, [2, 188]), o($Vc1, [2, 189]), o($Vc1, [2, 190]), o($Vc1, [2, 191]), o($Vc1, [2, 192]), o($Vc1, [2, 193]), o($Vc1, [2, 194]), o($Vc1, [2, 195]), o($Vc1, [2, 196]), { 68: [1, 280] }, o($Vc1, [2, 148]), o($Vc1, [2, 201]), o($Vc1, [2, 202]), o($Vc1, [2, 203]), { 12: [1, 281] }, o($Vc1, [2, 205]), o([5, 9, 13, 26, 33, 36, 50, 51, 52, 53, 54, 60, 62, 63, 68, 71, 72, 84, 85, 86, 87, 88, 89, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 106, 107, 108, 110, 111, 112, 114, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 175, 177, 178], [2, 79], { 70: [1, 282] }), o($Vd1, [2, 65], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vd1, [2, 82], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), o($Vd1, [2, 83], { 116: 191, 117: 192, 118: 193, 55: 194, 119: 195, 120: 196, 121: 197, 122: 198, 123: 199, 124: 200, 125: 201, 126: 202, 127: 203, 128: 204, 129: 205, 130: 206, 131: 207, 13: $Ve1, 52: $Vf1, 53: $Vg1, 54: $Vh1, 62: $Vi1, 68: $Vj1, 70: $Vk1, 104: $Vl1, 132: $Vm1, 133: $Vn1, 134: $Vo1, 135: $Vp1, 136: $Vq1, 137: $Vr1, 138: $Vs1, 139: $Vt1, 140: $Vu1, 141: $Vv1, 142: $Vw1, 143: $Vx1, 144: $Vy1, 145: $Vz1, 146: $VA1, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01, 160: $VB1, 161: $VC1, 162: $VD1, 163: $VE1, 164: $VF1, 165: $VG1, 166: $VH1, 167: $VI1, 168: $VJ1, 169: $VK1, 170: $VL1, 171: $VM1, 172: $VN1 }), { 9: $Vm, 38: 49, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 55: 89, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 110: [1, 283], 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01 }, { 68: [1, 284] }, { 68: [1, 285] }, { 109: [1, 286] }, o($V71, [2, 60]), o($V71, [2, 61]), { 110: [1, 287], 195: 288, 196: [1, 289], 197: [1, 290], 198: [1, 291], 199: [1, 292] }, { 110: [1, 293], 179: 294, 180: $VV1, 184: $VW1 }, { 110: [1, 297], 179: 294, 180: $VV1, 184: $VW1 }, { 110: [1, 298], 179: 294, 180: $VV1, 184: $VW1 }, o($Vc1, [2, 68]), o($VT1, [2, 70]), o($Vc1, [2, 71]), o($VU1, [2, 77]), o($VU1, [2, 78]), o($V71, [2, 102]), o($V71, [2, 104]), o($V71, [2, 105]), { 68: [1, 299] }, { 100: [1, 300] }, { 68: [1, 301] }, o($V71, [2, 114]), { 68: [1, 302] }, o($Vc1, [2, 155]), o($Vc1, [2, 156]), o($Vc1, [2, 157]), o($Vc1, [2, 158]), o($Vc1, [2, 159]), o($Vc1, [2, 160]), o($Vc1, [2, 200]), o($Vc1, [2, 198]), o($Vc1, [2, 199]), o($Vc1, [2, 197]), o($Vc1, [2, 204]), o($VO1, [2, 81]), o($V71, [2, 120]), { 109: [1, 303] }, { 109: [1, 304] }, { 56: 307, 59: 306, 60: $Vs, 63: $Vt, 113: 305 }, o($V81, [2, 206]), o($VQ1, [2, 229]), o($VQ1, [2, 230]), o($VQ1, [2, 231]), o($VQ1, [2, 232]), o($VQ1, [2, 233]), o($V81, [2, 207]), o($VR1, [2, 211]), { 181: 308, 185: $VX1, 188: 309, 190: $VY1, 191: 312, 192: $VZ1, 193: $V_1, 194: $V$1 }, o($VR1, $V02, { 183: 316, 185: $V12 }), o($V81, [2, 208]), o($V81, [2, 209]), o($V71, [2, 106]), { 68: [1, 318] }, o($V71, [2, 112]), o($V71, [2, 115]), o($VP1, $V1, { 37: 319 }), o($VP1, $V1, { 37: 320 }), { 56: 307, 57: 321, 59: 306, 60: $Vs, 63: $Vt, 68: $Vb1, 113: 322 }, o($V22, [2, 125]), o($V22, [2, 126]), { 182: [1, 323], 185: $VX1, 188: 324, 190: $VY1, 191: 312, 192: $VZ1, 193: $V_1, 194: $V$1 }, o($V32, [2, 218]), o($V42, $V52, { 189: 325, 191: 326, 192: $VZ1, 193: $V_1, 194: $V$1 }), o($V42, $V52, { 191: 326, 189: 327, 192: $VZ1, 193: $V_1, 194: $V$1 }), o($V32, [2, 222]), o($V32, [2, 225]), o($V32, [2, 226]), o($V32, [2, 227]), o($VR1, [2, 213]), o($V62, [2, 216], { 186: 328 }), o($V71, [2, 110]), { 9: $Vm, 38: 49, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 55: 89, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 110: [1, 329], 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01 }, { 9: $Vm, 38: 49, 39: 51, 40: 52, 41: 53, 42: 54, 43: 55, 44: 56, 45: 57, 46: 58, 47: 59, 48: 60, 49: 61, 50: $Vn, 51: $Vo, 52: $Vp, 53: $Vq, 54: $Vr, 55: 89, 56: 64, 59: 65, 60: $Vs, 63: $Vt, 71: $Vu, 72: $Vv, 73: 68, 74: 69, 75: 70, 76: 71, 77: 72, 78: 73, 79: 74, 80: 75, 81: 76, 82: 77, 83: 78, 84: $Vw, 85: $Vx, 86: $Vy, 87: $Vz, 88: $VA, 89: $VB, 94: $VC, 96: $VD, 97: $VE, 98: $VF, 99: $VG, 101: $VH, 102: $VI, 105: $VJ, 106: $VK, 107: $VL, 108: $VM, 110: [1, 330], 111: $VN, 112: $VO, 114: $VP, 147: $VQ, 148: $VR, 149: $VS, 150: $VT, 151: $VU, 152: $VV, 153: $VW, 154: $VX, 155: $VY, 156: $VZ, 157: $V_, 158: $V$, 159: $V01 }, { 56: 307, 59: 306, 60: $Vs, 63: $Vt, 113: 331 }, { 110: [1, 332] }, o($VR1, $V02, { 183: 333, 185: $V12 }), o($V32, [2, 219]), o($V32, [2, 220]), o($V32, [2, 224]), o($V32, [2, 221]), o($VR1, [2, 215], { 187: [1, 334] }), o($V71, [2, 123]), o($V71, [2, 124]), { 57: 335, 68: $Vb1, 110: [1, 336] }, o($V71, [2, 129]), o($VR1, [2, 212]), o($V62, [2, 217]), { 110: [1, 337] }, o($V71, [2, 128]), o($V71, [2, 127])],
542
617
  defaultActions: { 25: [2, 1] },
543
618
  parseError: function parseError(str, hash) {
544
619
  if (hash.recoverable) {
@@ -743,7 +818,31 @@ var localGrammar = function() {
743
818
  accidental: accidental || void 0,
744
819
  mode
745
820
  });
746
- const voice = (staff, events, lyrics) => {
821
+ const figuresLane = (placement, items) => {
822
+ let dur = { division: 4, dots: 0 };
823
+ const groups = items.map((it) => {
824
+ if (it.duration) dur = it.duration;
825
+ return it.lines ? { duration: dur, lines: it.lines } : { duration: dur };
826
+ });
827
+ return { placement, groups };
828
+ };
829
+ const clipFigures = (lane, events) => {
830
+ const voiceTicks = voiceEventTicks(events);
831
+ if (!(voiceTicks > 0)) return lane;
832
+ let at = 0;
833
+ const kept = [];
834
+ for (const g of lane.groups) {
835
+ if (at < voiceTicks) kept.push(g);
836
+ at += durationTicks(g.duration);
837
+ }
838
+ if (at > voiceTicks) {
839
+ const msg = `\\figures: ${at} ticks of figures but the voice has ${voiceTicks} ticks; ${lane.groups.length - kept.length} group(s) dropped`;
840
+ console.warn("[lilylet] " + msg);
841
+ parseWarnings.push({ type: "figures-overflow", message: msg, declared: at, actual: voiceTicks });
842
+ }
843
+ return { ...lane, groups: kept };
844
+ };
845
+ const voice = (staff, events, lyrics, figures) => {
747
846
  let leadingStaff = null;
748
847
  for (const e of events) {
749
848
  if (!e) continue;
@@ -758,10 +857,12 @@ var localGrammar = function() {
758
857
  break;
759
858
  }
760
859
  const lanes = lyrics && lyrics.length ? lyrics.map((lane, i) => ({ verse: i + 1, ...lane })) : void 0;
860
+ const figureLanes = figures && figures.length ? figures.map((lane) => clipFigures(lane, events)) : void 0;
761
861
  return {
762
862
  staff: leadingStaff != null ? leadingStaff : 1,
763
863
  events,
764
- lyrics: lanes
864
+ lyrics: lanes,
865
+ ...figureLanes ? { figures: figureLanes } : {}
765
866
  };
766
867
  };
767
868
  const part = (voices, name) => ({
@@ -1223,137 +1324,140 @@ var localGrammar = function() {
1223
1324
  return 12;
1224
1325
  break;
1225
1326
  case 17:
1226
- return 82;
1327
+ return 88;
1227
1328
  break;
1228
1329
  case 18:
1229
- return 83;
1330
+ return 89;
1230
1331
  break;
1231
1332
  case 19:
1232
- return 88;
1333
+ return 94;
1233
1334
  break;
1234
1335
  case 20:
1235
- return 92;
1336
+ return 98;
1236
1337
  break;
1237
1338
  case 21:
1238
- return 90;
1339
+ return 96;
1239
1340
  break;
1240
1341
  case 22:
1241
- return 91;
1342
+ return 85;
1242
1343
  break;
1243
1344
  case 23:
1244
- return 93;
1345
+ return 87;
1245
1346
  break;
1246
1347
  case 24:
1247
- return 95;
1348
+ return 84;
1248
1349
  break;
1249
1350
  case 25:
1250
- return 102;
1351
+ return 86;
1251
1352
  break;
1252
1353
  case 26:
1253
- return 105;
1354
+ return 97;
1254
1355
  break;
1255
1356
  case 27:
1256
- return 106;
1357
+ return 99;
1257
1358
  break;
1258
1359
  case 28:
1259
- return 108;
1360
+ return 101;
1260
1361
  break;
1261
1362
  case 29:
1262
- return 96;
1363
+ return 108;
1263
1364
  break;
1264
1365
  case 30:
1265
- return 99;
1366
+ return 111;
1266
1367
  break;
1267
1368
  case 31:
1268
- return 100;
1369
+ return 112;
1269
1370
  break;
1270
1371
  case 32:
1271
- return 101;
1372
+ return 114;
1272
1373
  break;
1273
1374
  case 33:
1274
- return 86;
1375
+ return 102;
1275
1376
  break;
1276
1377
  case 34:
1277
- return 87;
1378
+ return 105;
1278
1379
  break;
1279
1380
  case 35:
1280
- return 156;
1381
+ return 106;
1281
1382
  break;
1282
1383
  case 36:
1283
- return 157;
1384
+ return 107;
1284
1385
  break;
1285
1386
  case 37:
1286
- return 49;
1387
+ return 92;
1287
1388
  break;
1288
1389
  case 38:
1289
- return 163;
1390
+ return 93;
1290
1391
  break;
1291
1392
  case 39:
1292
- return 164;
1393
+ return 163;
1293
1394
  break;
1294
1395
  case 40:
1295
- return 50;
1396
+ return 164;
1296
1397
  break;
1297
1398
  case 41:
1298
- return 51;
1399
+ return 50;
1299
1400
  break;
1300
1401
  case 42:
1301
- this.pushState("lyric");
1302
- return 166;
1402
+ return 170;
1303
1403
  break;
1304
1404
  case 43:
1305
- return 153;
1405
+ return 171;
1306
1406
  break;
1307
1407
  case 44:
1308
- return 154;
1408
+ return 51;
1309
1409
  break;
1310
1410
  case 45:
1311
- return 155;
1411
+ return 52;
1312
1412
  break;
1313
1413
  case 46:
1314
- return 127;
1414
+ this.pushState("lyric");
1415
+ return 173;
1315
1416
  break;
1316
1417
  case 47:
1317
- return 128;
1418
+ this.pushState("figures");
1419
+ return 178;
1318
1420
  break;
1319
1421
  case 48:
1320
- return 129;
1422
+ this.pushState("figures");
1423
+ return 177;
1321
1424
  break;
1322
1425
  case 49:
1323
- return 130;
1426
+ this.pushState("figures");
1427
+ return 175;
1324
1428
  break;
1325
1429
  case 50:
1326
- return 131;
1430
+ return 160;
1327
1431
  break;
1328
1432
  case 51:
1329
- return 132;
1433
+ return 161;
1330
1434
  break;
1331
1435
  case 52:
1332
- return 133;
1436
+ return 162;
1333
1437
  break;
1334
1438
  case 53:
1335
- return 134;
1439
+ return 133;
1336
1440
  break;
1337
1441
  case 54:
1338
- return 135;
1442
+ return 134;
1339
1443
  break;
1340
1444
  case 55:
1341
- return 136;
1445
+ return 135;
1342
1446
  break;
1343
1447
  case 56:
1344
- return 137;
1448
+ return 136;
1345
1449
  break;
1346
1450
  case 57:
1347
- return 138;
1451
+ return 137;
1348
1452
  break;
1349
1453
  case 58:
1350
- return 139;
1454
+ return 138;
1351
1455
  break;
1352
1456
  case 59:
1353
- return 140;
1457
+ return 139;
1354
1458
  break;
1355
1459
  case 60:
1356
- return 165;
1460
+ return 140;
1357
1461
  break;
1358
1462
  case 61:
1359
1463
  return 141;
@@ -1362,157 +1466,221 @@ var localGrammar = function() {
1362
1466
  return 142;
1363
1467
  break;
1364
1468
  case 63:
1365
- return 144;
1469
+ return 143;
1366
1470
  break;
1367
1471
  case 64:
1368
- return 145;
1472
+ return 144;
1369
1473
  break;
1370
1474
  case 65:
1371
- return 148;
1475
+ return 145;
1372
1476
  break;
1373
1477
  case 66:
1374
- return 147;
1478
+ return 146;
1375
1479
  break;
1376
1480
  case 67:
1377
- return 149;
1481
+ return 172;
1378
1482
  break;
1379
1483
  case 68:
1380
- return 150;
1484
+ return 158;
1381
1485
  break;
1382
1486
  case 69:
1383
- return 151;
1487
+ return 147;
1384
1488
  break;
1385
1489
  case 70:
1386
- return 152;
1490
+ return 148;
1387
1491
  break;
1388
1492
  case 71:
1389
- return 143;
1493
+ return 150;
1390
1494
  break;
1391
1495
  case 72:
1392
- return 146;
1496
+ return 151;
1393
1497
  break;
1394
1498
  case 73:
1395
- return 126;
1499
+ return 154;
1396
1500
  break;
1397
1501
  case 74:
1398
- return 32;
1502
+ return 153;
1399
1503
  break;
1400
1504
  case 75:
1401
- return 35;
1505
+ return 155;
1402
1506
  break;
1403
1507
  case 76:
1404
- return 109;
1508
+ return 156;
1405
1509
  break;
1406
1510
  case 77:
1407
- return 62;
1511
+ return 157;
1408
1512
  break;
1409
1513
  case 78:
1410
- return 65;
1514
+ return 159;
1411
1515
  break;
1412
1516
  case 79:
1413
- return 66;
1517
+ return 149;
1414
1518
  break;
1415
1519
  case 80:
1416
- return 67;
1520
+ return 152;
1417
1521
  break;
1418
1522
  case 81:
1419
- return 89;
1523
+ return 132;
1420
1524
  break;
1421
1525
  case 82:
1422
- return 97;
1526
+ return 33;
1423
1527
  break;
1424
1528
  case 83:
1425
- return 103;
1529
+ return 36;
1426
1530
  break;
1427
1531
  case 84:
1428
- return 104;
1532
+ return 115;
1429
1533
  break;
1430
1534
  case 85:
1431
- return 59;
1535
+ return 63;
1432
1536
  break;
1433
1537
  case 86:
1434
- return 61;
1538
+ return 66;
1435
1539
  break;
1436
1540
  case 87:
1437
- return 26;
1541
+ return 67;
1438
1542
  break;
1439
1543
  case 88:
1440
- return 161;
1544
+ return 68;
1441
1545
  break;
1442
1546
  case 89:
1443
- return 13;
1547
+ return 95;
1444
1548
  break;
1445
1549
  case 90:
1446
- return 159;
1550
+ return 103;
1447
1551
  break;
1448
1552
  case 91:
1449
- return 160;
1553
+ return 109;
1450
1554
  break;
1451
1555
  case 92:
1452
- return 158;
1556
+ return 110;
1453
1557
  break;
1454
1558
  case 93:
1455
- return 69;
1559
+ return 60;
1456
1560
  break;
1457
1561
  case 94:
1458
- return 98;
1562
+ return 62;
1459
1563
  break;
1460
1564
  case 95:
1461
- return 53;
1565
+ return 26;
1462
1566
  break;
1463
1567
  case 96:
1464
- return 52;
1568
+ return 168;
1465
1569
  break;
1466
1570
  case 97:
1467
- return 64;
1571
+ return 13;
1468
1572
  break;
1469
1573
  case 98:
1470
- return 162;
1574
+ return 166;
1471
1575
  break;
1472
1576
  case 99:
1473
- return 94;
1577
+ return 167;
1474
1578
  break;
1475
1579
  case 100:
1476
- return 70;
1580
+ return 165;
1477
1581
  break;
1478
1582
  case 101:
1479
- return 71;
1583
+ return 70;
1480
1584
  break;
1481
1585
  case 102:
1482
- return 5;
1586
+ return 104;
1483
1587
  break;
1484
1588
  case 103:
1589
+ return 54;
1485
1590
  break;
1486
1591
  case 104:
1487
- return 103;
1592
+ return 53;
1488
1593
  break;
1489
1594
  case 105:
1490
- this.popState();
1491
- return 104;
1595
+ return 65;
1492
1596
  break;
1493
1597
  case 106:
1598
+ return 169;
1494
1599
  break;
1495
1600
  case 107:
1601
+ return 100;
1496
1602
  break;
1497
1603
  case 108:
1498
- return 170;
1604
+ return 71;
1499
1605
  break;
1500
1606
  case 109:
1501
- return 172;
1607
+ return 72;
1502
1608
  break;
1503
1609
  case 110:
1504
- return 171;
1610
+ return 5;
1505
1611
  break;
1506
1612
  case 111:
1507
- return 169;
1508
1613
  break;
1509
1614
  case 112:
1510
- return 169;
1615
+ return 109;
1616
+ break;
1617
+ case 113:
1618
+ this.popState();
1619
+ return 110;
1620
+ break;
1621
+ case 114:
1622
+ break;
1623
+ case 115:
1624
+ break;
1625
+ case 116:
1626
+ return 197;
1627
+ break;
1628
+ case 117:
1629
+ return 199;
1630
+ break;
1631
+ case 118:
1632
+ return 198;
1633
+ break;
1634
+ case 119:
1635
+ return 196;
1636
+ break;
1637
+ case 120:
1638
+ return 196;
1639
+ break;
1640
+ case 121:
1641
+ return 109;
1642
+ break;
1643
+ case 122:
1644
+ this.popState();
1645
+ return 110;
1646
+ break;
1647
+ case 123:
1648
+ break;
1649
+ case 124:
1650
+ break;
1651
+ case 125:
1652
+ break;
1653
+ case 126:
1654
+ return 180;
1655
+ break;
1656
+ case 127:
1657
+ return 182;
1658
+ break;
1659
+ case 128:
1660
+ return 185;
1661
+ break;
1662
+ case 129:
1663
+ return 190;
1664
+ break;
1665
+ case 130:
1666
+ return 192;
1667
+ break;
1668
+ case 131:
1669
+ return 193;
1670
+ break;
1671
+ case 132:
1672
+ return 194;
1673
+ break;
1674
+ case 133:
1675
+ return 187;
1676
+ break;
1677
+ case 134:
1678
+ return 184;
1511
1679
  break;
1512
1680
  }
1513
1681
  },
1514
- rules: [/^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:%.*)/, /^(?:\[title\b)/, /^(?:\[subtitle\b)/, /^(?:\[composer\b)/, /^(?:\[arranger\b)/, /^(?:\[lyricist\b)/, /^(?:\[opus\b)/, /^(?:\[instrument-[A-Za-z0-9_]+(?:-[A-Za-z0-9_]+)*)/, /^(?:\[instrument\b)/, /^(?:\[genre\b)/, /^(?:\[staves\b)/, /^(?:\[measures\b)/, /^(?:\[auto-beam\b)/, /^(?:\])/, /^(?:"([^\"\\]|\\.)*")/, /^(?:\\clef\b)/, /^(?:\\key\b)/, /^(?:\\time\b)/, /^(?:\\partial\b)/, /^(?:\\numericTimeSignature\b)/, /^(?:\\defaultTimeSignature\b)/, /^(?:\\tempo\b)/, /^(?:\\staff\b)/, /^(?:\\grace\b)/, /^(?:\\times\b)/, /^(?:\\tuplet\b)/, /^(?:\\repeat\b)/, /^(?:\\ottava\b)/, /^(?:\\stemUp\b)/, /^(?:\\stemDown\b)/, /^(?:\\stemNeutral\b)/, /^(?:\\major\b)/, /^(?:\\minor\b)/, /^(?:\\sustainOn\b)/, /^(?:\\sustainOff\b)/, /^(?:\\bar\b)/, /^(?:\\coda\b)/, /^(?:\\segno\b)/, /^(?:\\chords\b)/, /^(?:\\markup\b)/, /^(?:\\addlyrics\b)/, /^(?:\\<)/, /^(?:\\>)/, /^(?:\\!)/, /^(?:\\staccato\b)/, /^(?:\\staccatissimo\b)/, /^(?:\\tenuto\b)/, /^(?:\\marcato\b)/, /^(?:\\accent\b)/, /^(?:\\portato\b)/, /^(?:\\trill\b)/, /^(?:\\turn\b)/, /^(?:\\mordent\b)/, /^(?:\\prall\b)/, /^(?:\\fermata\b)/, /^(?:\\shortfermata\b)/, /^(?:\\arpeggio\b)/, /^(?:\\breathe\b)/, /^(?:\\glissando\b)/, /^(?:\\ppp\b)/, /^(?:\\pp\b)/, /^(?:\\mp\b)/, /^(?:\\mf\b)/, /^(?:\\fff\b)/, /^(?:\\ff\b)/, /^(?:\\sfz\b)/, /^(?:\\rfz\b)/, /^(?:\\sf\b)/, /^(?:\\fp\b)/, /^(?:\\p\b)/, /^(?:\\f)/, /^(?:\\rest\b)/, /^(?:\\\\\\)/, /^(?:\\\\)/, /^(?:tremolo\b)/, /^(?:[a-g](ss|ff|s|f)?)/, /^(?:')/, /^(?:,)/, /^(?:[0-9]+)/, /^(?:\/)/, /^(?:#)/, /^(?:\{)/, /^(?:\})/, /^(?:<)/, /^(?:>)/, /^(?:\|)/, /^(?:\[)/, /^(?:\])/, /^(?:\()/, /^(?:\))/, /^(?:~)/, /^(?:\.)/, /^(?:-)/, /^(?:[_])/, /^(?:\^)/, /^(?:!)/, /^(?::)/, /^(?:=)/, /^(?:[rR])/, /^(?:[sS])/, /^(?:$)/, /^(?:.)/, /^(?:\{)/, /^(?:\})/, /^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:--)/, /^(?:__\b)/, /^(?:_\b)/, /^(?:"([^\"\\]|\\.)*")/, /^(?:[^ \t\r\n{}\"\\]+)/],
1515
- conditions: { "lyric": { "rules": [104, 105, 106, 107, 108, 109, 110, 111, 112], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103], "inclusive": true } }
1682
+ rules: [/^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:%.*)/, /^(?:\[title\b)/, /^(?:\[subtitle\b)/, /^(?:\[composer\b)/, /^(?:\[arranger\b)/, /^(?:\[lyricist\b)/, /^(?:\[opus\b)/, /^(?:\[instrument-[A-Za-z0-9_]+(?:-[A-Za-z0-9_]+)*)/, /^(?:\[instrument\b)/, /^(?:\[genre\b)/, /^(?:\[staves\b)/, /^(?:\[measures\b)/, /^(?:\[auto-beam\b)/, /^(?:\])/, /^(?:"([^\"\\]|\\.)*")/, /^(?:\\clef\b)/, /^(?:\\key\b)/, /^(?:\\time\b)/, /^(?:\\partial\b)/, /^(?:\\numericTimeSignature\b)/, /^(?:\\undo[ \t]+\\omit[ \t]+(?:Score|Staff)\.TimeSignature\b)/, /^(?:\\undo[ \t]+\\omit[ \t]+(?:Score|Staff)\.BarLine\b)/, /^(?:\\omit[ \t]+(?:Score|Staff)\.TimeSignature\b)/, /^(?:\\omit[ \t]+(?:Score|Staff)\.BarLine\b)/, /^(?:\\defaultTimeSignature\b)/, /^(?:\\tempo\b)/, /^(?:\\staff\b)/, /^(?:\\grace\b)/, /^(?:\\times\b)/, /^(?:\\tuplet\b)/, /^(?:\\repeat\b)/, /^(?:\\ottava\b)/, /^(?:\\stemUp\b)/, /^(?:\\stemDown\b)/, /^(?:\\stemNeutral\b)/, /^(?:\\major\b)/, /^(?:\\minor\b)/, /^(?:\\sustainOn\b)/, /^(?:\\sustainOff\b)/, /^(?:\\bar\b)/, /^(?:\\coda\b)/, /^(?:\\segno\b)/, /^(?:\\chords\b)/, /^(?:\\markup\b)/, /^(?:\\addlyrics\b)/, /^(?:\^\\figures\b)/, /^(?:_\\figures\b)/, /^(?:\\figures\b)/, /^(?:\\<)/, /^(?:\\>)/, /^(?:\\!)/, /^(?:\\staccato\b)/, /^(?:\\staccatissimo\b)/, /^(?:\\tenuto\b)/, /^(?:\\marcato\b)/, /^(?:\\accent\b)/, /^(?:\\portato\b)/, /^(?:\\trill\b)/, /^(?:\\turn\b)/, /^(?:\\mordent\b)/, /^(?:\\prall\b)/, /^(?:\\fermata\b)/, /^(?:\\shortfermata\b)/, /^(?:\\arpeggio\b)/, /^(?:\\breathe\b)/, /^(?:\\glissando\b)/, /^(?:\\(?:fffff|ppppp|ffff|pppp|sffz|sfpp|sfzp|mfp|sff|sfp|spp|fz|pf|rf|sf|sp|n)(?![a-zA-Z]))/, /^(?:\\ppp\b)/, /^(?:\\pp\b)/, /^(?:\\mp\b)/, /^(?:\\mf\b)/, /^(?:\\fff\b)/, /^(?:\\ff\b)/, /^(?:\\sfz\b)/, /^(?:\\rfz\b)/, /^(?:\\sf\b)/, /^(?:\\fp\b)/, /^(?:\\p\b)/, /^(?:\\f)/, /^(?:\\rest\b)/, /^(?:\\\\\\)/, /^(?:\\\\)/, /^(?:tremolo\b)/, /^(?:[a-g](ss|ff|s|f)?)/, /^(?:')/, /^(?:,)/, /^(?:[0-9]+)/, /^(?:\/)/, /^(?:#)/, /^(?:\{)/, /^(?:\})/, /^(?:<)/, /^(?:>)/, /^(?:\|)/, /^(?:\[)/, /^(?:\])/, /^(?:\()/, /^(?:\))/, /^(?:~)/, /^(?:\.)/, /^(?:-)/, /^(?:[_])/, /^(?:\^)/, /^(?:!)/, /^(?::)/, /^(?:=)/, /^(?:[rR])/, /^(?:[sS])/, /^(?:$)/, /^(?:.)/, /^(?:\{)/, /^(?:\})/, /^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:--)/, /^(?:__\b)/, /^(?:_\b)/, /^(?:"([^\"\\]|\\.)*")/, /^(?:[^ \t\r\n{}\"\\]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[ \t]+)/, /^(?:(\r?\n)+)/, /^(?:%.*)/, /^(?:<)/, /^(?:>)/, /^(?:[0-9]+)/, /^(?:_\b)/, /^(?:\+)/, /^(?:-)/, /^(?:!)/, /^(?:\.)/, /^(?:[sS])/],
1683
+ conditions: { "figures": { "rules": [121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134], "inclusive": false }, "lyric": { "rules": [112, 113, 114, 115, 116, 117, 118, 119, 120], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111], "inclusive": true } }
1516
1684
  };
1517
1685
  return lexer2;
1518
1686
  }();
@@ -1663,6 +1831,7 @@ var Clef;
1663
1831
  Clef2["treble"] = "treble";
1664
1832
  Clef2["bass"] = "bass";
1665
1833
  Clef2["alto"] = "alto";
1834
+ Clef2["tenor"] = "tenor";
1666
1835
  })(Clef || (Clef = {}));
1667
1836
  var StemDirection;
1668
1837
  (function(StemDirection2) {
@@ -1703,7 +1872,25 @@ var DynamicType;
1703
1872
  DynamicType2["sfz"] = "sfz";
1704
1873
  DynamicType2["rfz"] = "rfz";
1705
1874
  DynamicType2["fp"] = "fp";
1875
+ DynamicType2["pppp"] = "pppp";
1876
+ DynamicType2["ppppp"] = "ppppp";
1877
+ DynamicType2["ffff"] = "ffff";
1878
+ DynamicType2["fffff"] = "fffff";
1879
+ DynamicType2["sf"] = "sf";
1880
+ DynamicType2["sff"] = "sff";
1881
+ DynamicType2["sfp"] = "sfp";
1882
+ DynamicType2["sfpp"] = "sfpp";
1883
+ DynamicType2["sffz"] = "sffz";
1884
+ DynamicType2["sfzp"] = "sfzp";
1885
+ DynamicType2["sp"] = "sp";
1886
+ DynamicType2["spp"] = "spp";
1887
+ DynamicType2["fz"] = "fz";
1888
+ DynamicType2["rf"] = "rf";
1889
+ DynamicType2["mfp"] = "mfp";
1890
+ DynamicType2["pf"] = "pf";
1891
+ DynamicType2["n"] = "n";
1706
1892
  })(DynamicType || (DynamicType = {}));
1893
+ var DYNAMIC_NAMES = Object.values(DynamicType);
1707
1894
  var HairpinType;
1708
1895
  (function(HairpinType2) {
1709
1896
  HairpinType2["crescendoStart"] = "crescendoStart";
@@ -2686,23 +2873,41 @@ var CLEF_SHAPES = {
2686
2873
  treble: { shape: "G", line: 2 },
2687
2874
  bass: { shape: "F", line: 4 },
2688
2875
  alto: { shape: "C", line: 3 },
2876
+ tenor: { shape: "C", line: 4 },
2689
2877
  // Also support uppercase letter clef names
2690
2878
  G: { shape: "G", line: 2 },
2691
2879
  F: { shape: "F", line: 4 },
2692
2880
  C: { shape: "C", line: 3 }
2693
2881
  };
2882
+ var CLEF_DIS = { 1: "8", 2: "15", 3: "22" };
2883
+ var warnedClefs = /* @__PURE__ */ new Set();
2694
2884
  var resolveClef = (clefStr) => {
2695
- const clefInfo = CLEF_SHAPES[clefBaseName(clefStr)] || CLEF_SHAPES.treble;
2885
+ const base = clefBaseName(clefStr);
2886
+ if (!CLEF_SHAPES[base] && !warnedClefs.has(base)) {
2887
+ warnedClefs.add(base);
2888
+ console.warn(`[lilylet] unknown clef "${base}", encoded as treble`);
2889
+ }
2890
+ const clefInfo = CLEF_SHAPES[base] || CLEF_SHAPES.treble;
2696
2891
  const trans = clefSuffixTransposition(clefStr);
2892
+ if (trans && trans.semi % 12 === 0 && trans.diat === 7 * (trans.semi / 12)) {
2893
+ const octaves = trans.semi / 12;
2894
+ const dis = CLEF_DIS[Math.abs(octaves)];
2895
+ if (dis)
2896
+ return { shape: clefInfo.shape, line: clefInfo.line, dis: { dis, place: octaves > 0 ? "above" : "below", octaves } };
2897
+ }
2697
2898
  return {
2698
2899
  shape: clefInfo.shape,
2699
2900
  line: clefInfo.line,
2700
2901
  ...trans ? { trans } : {}
2701
2902
  };
2702
2903
  };
2904
+ var clefOctaveShift = (clefStr) => clefStr ? resolveClef(clefStr).dis?.octaves ?? 0 : 0;
2703
2905
  var clefElementAttrs = (clefStr) => {
2704
2906
  const c = resolveClef(clefStr);
2705
- return `shape="${c.shape}" line="${c.line}"`;
2907
+ let attrs = `shape="${c.shape}" line="${c.line}"`;
2908
+ if (c.dis)
2909
+ attrs += ` dis="${c.dis.dis}" dis.place="${c.dis.place}"`;
2910
+ return attrs;
2706
2911
  };
2707
2912
  var clefTransOf = (clefStr) => {
2708
2913
  const c = resolveClef(clefStr);
@@ -2711,6 +2916,8 @@ var clefTransOf = (clefStr) => {
2711
2916
  var staffDefClefAttrs = (clefStr) => {
2712
2917
  const c = resolveClef(clefStr);
2713
2918
  let attrs = `clef.shape="${c.shape}" clef.line="${c.line}"`;
2919
+ if (c.dis)
2920
+ attrs += ` clef.dis="${c.dis.dis}" clef.dis.place="${c.dis.place}"`;
2714
2921
  if (c.trans)
2715
2922
  attrs += ` trans.diat="${c.trans.diat}" trans.semi="${c.trans.semi}"`;
2716
2923
  return attrs;
@@ -2756,7 +2963,9 @@ var DYNAMIC_MAP = {
2756
2963
  fff: "fff",
2757
2964
  sfz: "sfz",
2758
2965
  rfz: "rfz",
2759
- fp: "fp"
2966
+ fp: "fp",
2967
+ // <dynam> text is the name itself; Verovio draws it from SMuFL dynamic glyphs.
2968
+ ...Object.fromEntries(DYNAMIC_NAMES.map((d) => [d, d]))
2760
2969
  };
2761
2970
  var idCounter = 0;
2762
2971
  var sessionPrefix = "";
@@ -2782,8 +2991,8 @@ var getKeyAccidentals = (fifths) => {
2782
2991
  }
2783
2992
  return result;
2784
2993
  };
2785
- var encodePitch = (pitch, keyFifths = 0, ottavaShift = 0, measureAccidentals) => {
2786
- const soundingOct = 4 + pitch.octave;
2994
+ var encodePitch = (pitch, keyFifths = 0, ottavaShift = 0, measureAccidentals, clefOctave = 0) => {
2995
+ const soundingOct = 4 + pitch.octave + clefOctave;
2787
2996
  const oct = soundingOct - ottavaShift;
2788
2997
  const octGes = ottavaShift !== 0 ? soundingOct : void 0;
2789
2998
  const keyAccidentals = getKeyAccidentals(keyFifths);
@@ -2836,12 +3045,10 @@ var tremoloToStemMod = (division) => {
2836
3045
  };
2837
3046
  var lyricWordPosition = (syllables, index) => {
2838
3047
  const syllable = syllables[index];
2839
- if (!syllable?.text)
2840
- return "u";
2841
3048
  const previous = index > 0 ? syllables[index - 1] : void 0;
2842
3049
  if (previous?.text && previous.hyphen)
2843
- return syllable.hyphen ? "m" : "t";
2844
- return syllable.hyphen ? "i" : "u";
3050
+ return syllable?.hyphen ? "m" : "t";
3051
+ return syllable?.hyphen ? "i" : "s";
2845
3052
  };
2846
3053
  var lyricSyllableXml = (lane, index, indent) => {
2847
3054
  const syllable = lane.syllables[index];
@@ -3062,7 +3269,7 @@ var extractMarkOptions = (marks) => {
3062
3269
  }
3063
3270
  return result;
3064
3271
  };
3065
- var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFifths = 0, ottavaShift = 0, measureAccidentals, lyricXml = "") => {
3272
+ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFifths = 0, ottavaShift = 0, measureAccidentals, lyricXml = "", clefOctave = 0) => {
3066
3273
  const dur = DURATIONS[event.duration.division] || "4";
3067
3274
  const dots = event.duration.dots || 0;
3068
3275
  const markOptions = extractMarkOptions(event.marks);
@@ -3090,7 +3297,7 @@ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFift
3090
3297
  tremolo: markOptions.tremolo
3091
3298
  };
3092
3299
  if (event.pitches.length === 1) {
3093
- const pitch = encodePitch(event.pitches[0], keyFifths, ottavaShift, measureAccidentals);
3300
+ const pitch = encodePitch(event.pitches[0], keyFifths, ottavaShift, measureAccidentals, clefOctave);
3094
3301
  const noteId = generateId("note");
3095
3302
  return {
3096
3303
  xml: buildNoteElement(pitch, dur, dots, indent, false, { ...noteOptions, lyricXml }, noteId),
@@ -3137,7 +3344,7 @@ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFift
3137
3344
  let result = `${indent}<chord ${chordAttrs}>
3138
3345
  `;
3139
3346
  for (const p of event.pitches) {
3140
- const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals);
3347
+ const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals, clefOctave);
3141
3348
  result += buildNoteElement(pitch, dur, dots, indent + " ", true);
3142
3349
  }
3143
3350
  if (noteOptions.artics.length > 0) {
@@ -3185,7 +3392,7 @@ var noteEventToMEI = (event, indent, layerStaff, tieEnd, contextStemDir, keyFift
3185
3392
  glissando: markOptions.glissando
3186
3393
  };
3187
3394
  };
3188
- var restEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals, crossStaff) => {
3395
+ var restEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals, crossStaff, clefOctave = 0) => {
3189
3396
  const dur = DURATIONS[event.duration.division] || "4";
3190
3397
  const restId = generateId("rest");
3191
3398
  let attrs = `xml:id="${restId}" dur="${dur}"`;
@@ -3201,7 +3408,7 @@ var restEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAcci
3201
3408
  }
3202
3409
  }
3203
3410
  if (event.pitch) {
3204
- const pitch = encodePitch(event.pitch, keyFifths, ottavaShift);
3411
+ const pitch = encodePitch(event.pitch, keyFifths, ottavaShift, void 0, clefOctave);
3205
3412
  attrs += ` ploc="${pitch.pname}" oloc="${pitch.oct}"`;
3206
3413
  }
3207
3414
  if (event.invisible) {
@@ -3266,7 +3473,7 @@ var tupletEventToMEI = (event, indent, layerStaff, keyFifths = 0, currentStaff,
3266
3473
  const noteIndent = beamOpen ? baseIndent + " " : baseIndent;
3267
3474
  const effectiveNoteEvent = effectiveStaff && layerStaff && effectiveStaff !== layerStaff ? { ...noteEvent, staff: effectiveStaff } : noteEvent;
3268
3475
  const lyricXml = lyricCursors.length ? lyricXmlForEvent(lyricCursors, noteIndent + " ") : "";
3269
- const result = noteEventToMEI(effectiveNoteEvent, noteIndent, layerStaff, false, void 0, keyFifths, ottavaShift, measureAccidentals, lyricXml);
3476
+ const result = noteEventToMEI(effectiveNoteEvent, noteIndent, layerStaff, false, void 0, keyFifths, ottavaShift, measureAccidentals, lyricXml, clefOctaveShift(activeClef));
3270
3477
  xml += result.xml;
3271
3478
  if (!firstNoteId)
3272
3479
  firstNoteId = result.elementId;
@@ -3302,7 +3509,7 @@ var tupletEventToMEI = (event, indent, layerStaff, keyFifths = 0, currentStaff,
3302
3509
  }
3303
3510
  } else if (e.type === "rest") {
3304
3511
  const restIndent = beamOpen ? baseIndent + " " : baseIndent;
3305
- const restResult = restEventToMEI(e, restIndent, keyFifths, ottavaShift, measureAccidentals);
3512
+ const restResult = restEventToMEI(e, restIndent, keyFifths, ottavaShift, measureAccidentals, void 0, clefOctaveShift(activeClef));
3306
3513
  xml += restResult.xml;
3307
3514
  lastNoteId = restResult.elementId;
3308
3515
  if (restResult.fermata)
@@ -3330,14 +3537,14 @@ var tupletEventToMEI = (event, indent, layerStaff, keyFifths = 0, currentStaff,
3330
3537
  `;
3331
3538
  return { xml, firstNoteId, lastNoteId, slurStarts, slurEnds, dynamics, fermatas, trills, mordents, turns, arpeggios, pedals, fingerings, markups, endingClef };
3332
3539
  };
3333
- var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals) => {
3540
+ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureAccidentals, clefOctave = 0) => {
3334
3541
  const ftremId = generateId("fTrem");
3335
3542
  const beams = Math.max(1, Math.log2(event.division / 8) + 1);
3336
3543
  const noteDur = Math.round(event.division / event.count) || 4;
3337
3544
  let result = `${indent}<fTrem xml:id="${ftremId}" beams="${beams}">
3338
3545
  `;
3339
3546
  if (event.pitchA.length === 1) {
3340
- const pitch = encodePitch(event.pitchA[0], keyFifths, ottavaShift, measureAccidentals);
3547
+ const pitch = encodePitch(event.pitchA[0], keyFifths, ottavaShift, measureAccidentals, clefOctave);
3341
3548
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}" dur="${noteDur}"`;
3342
3549
  if (pitch.accid)
3343
3550
  attrs += ` accid="${pitch.accid}"`;
@@ -3351,7 +3558,7 @@ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureA
3351
3558
  result += `${indent} <chord xml:id="${generateId("chord")}" dur="${noteDur}">
3352
3559
  `;
3353
3560
  for (const p of event.pitchA) {
3354
- const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals);
3561
+ const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals, clefOctave);
3355
3562
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}"`;
3356
3563
  if (pitch.accid)
3357
3564
  attrs += ` accid="${pitch.accid}"`;
@@ -3366,7 +3573,7 @@ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureA
3366
3573
  `;
3367
3574
  }
3368
3575
  if (event.pitchB.length === 1) {
3369
- const pitch = encodePitch(event.pitchB[0], keyFifths, ottavaShift, measureAccidentals);
3576
+ const pitch = encodePitch(event.pitchB[0], keyFifths, ottavaShift, measureAccidentals, clefOctave);
3370
3577
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}" dur="${noteDur}"`;
3371
3578
  if (pitch.accid)
3372
3579
  attrs += ` accid="${pitch.accid}"`;
@@ -3380,7 +3587,7 @@ var tremoloEventToMEI = (event, indent, keyFifths = 0, ottavaShift = 0, measureA
3380
3587
  result += `${indent} <chord xml:id="${generateId("chord")}" dur="${noteDur}">
3381
3588
  `;
3382
3589
  for (const p of event.pitchB) {
3383
- const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals);
3590
+ const pitch = encodePitch(p, keyFifths, ottavaShift, measureAccidentals, clefOctave);
3384
3591
  let attrs = `xml:id="${generateId("note")}" pname="${pitch.pname}" oct="${pitch.oct}"`;
3385
3592
  if (pitch.accid)
3386
3593
  attrs += ` accid="${pitch.accid}"`;
@@ -3543,7 +3750,7 @@ var encodeLayer = (voice, layerN, indent, initialTiePitches = [], keyFifths = 0,
3543
3750
  applyPendingOttavaShift();
3544
3751
  const effectiveNoteEvent = currentStaff !== voice.staff ? { ...noteEvent, staff: currentStaff } : noteEvent;
3545
3752
  const eventLyricXml = isGraceNote ? "" : lyricXmlForEvent(lyricCursors, currentIndent + " ");
3546
- const result = noteEventToMEI(effectiveNoteEvent, currentIndent, voice.staff, tieEnd, currentStemDirection, keyFifths, currentOttavaShift, measureAccidentals, eventLyricXml);
3753
+ const result = noteEventToMEI(effectiveNoteEvent, currentIndent, voice.staff, tieEnd, currentStemDirection, keyFifths, currentOttavaShift, measureAccidentals, eventLyricXml, clefOctaveShift(currentClef));
3547
3754
  xml += result.xml;
3548
3755
  lastNoteId = result.elementId;
3549
3756
  extendOttavaEnd(result.elementId);
@@ -3642,7 +3849,7 @@ var encodeLayer = (voice, layerN, indent, initialTiePitches = [], keyFifths = 0,
3642
3849
  case "rest": {
3643
3850
  const restCrossStaff = currentStaff !== (voice.staff || 1) ? currentStaff : void 0;
3644
3851
  applyPendingOttavaShift();
3645
- const restResult = restEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals, restCrossStaff);
3852
+ const restResult = restEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals, restCrossStaff, clefOctaveShift(currentClef));
3646
3853
  xml += restResult.xml;
3647
3854
  lastNoteId = restResult.elementId;
3648
3855
  extendOttavaEnd(restResult.elementId);
@@ -3695,7 +3902,7 @@ var encodeLayer = (voice, layerN, indent, initialTiePitches = [], keyFifths = 0,
3695
3902
  break;
3696
3903
  }
3697
3904
  case "tremolo":
3698
- xml += tremoloEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals);
3905
+ xml += tremoloEventToMEI(event, currentIndent, keyFifths, currentOttavaShift, measureAccidentals, clefOctaveShift(currentClef));
3699
3906
  break;
3700
3907
  case "context": {
3701
3908
  const ctx = event;
@@ -4014,6 +4221,7 @@ var measureStartClef = (measure, globalStaff, partInfos, carriedClef) => {
4014
4221
  return active;
4015
4222
  };
4016
4223
  var BARLINE_TO_MEI = {
4224
+ "": "invis",
4017
4225
  "|": "single",
4018
4226
  "||": "dbl",
4019
4227
  "|.": "end",
@@ -4022,7 +4230,7 @@ var BARLINE_TO_MEI = {
4022
4230
  ":..:|": "rptboth",
4023
4231
  ":..:": "rptboth"
4024
4232
  };
4025
- var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState, hairpinState, ottavaState, keyFifths = 0, partInfos = [], clefState = {}, octaveEndReplacements = {}, measureIds, glissState = {}) => {
4233
+ var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState, hairpinState, ottavaState, keyFifths = 0, partInfos = [], clefState = {}, octaveEndReplacements = {}, measureIds, glissState = {}, barHidden = false, meterUnit = 4) => {
4026
4234
  const measureId = generateId("measure");
4027
4235
  if (measureIds)
4028
4236
  measureIds.push(measureId);
@@ -4199,13 +4407,16 @@ var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState
4199
4407
  staffContent += `${indent} <harm xml:id="${generateId("harm")}" startid="#${harm.startid}">${escapeXml(harm.text)}</harm>
4200
4408
  `;
4201
4409
  }
4410
+ staffContent += encodeFigureLanes(measure, partInfos, meterUnit, indent + " ");
4202
4411
  for (const mkup of allMarkups) {
4203
4412
  const placeAttr = mkup.placement ? ` place="${mkup.placement}"` : "";
4204
4413
  staffContent += `${indent} <dir xml:id="${generateId("dir")}" startid="#${mkup.startid}"${placeAttr}>${escapeXml(mkup.content)}</dir>
4205
4414
  `;
4206
4415
  }
4207
4416
  let barlineAttr = "";
4208
- if (allBarlines.length > 0) {
4417
+ if (barHidden) {
4418
+ barlineAttr = ' right="invis"';
4419
+ } else if (allBarlines.length > 0) {
4209
4420
  const lastBarline = allBarlines[allBarlines.length - 1];
4210
4421
  const meiBarline = BARLINE_TO_MEI[lastBarline.style];
4211
4422
  if (meiBarline && meiBarline !== "single") {
@@ -4219,6 +4430,32 @@ var encodeMeasure = (measure, measureN, indent, totalStaves, tieState, slurState
4219
4430
  `;
4220
4431
  return xml;
4221
4432
  };
4433
+ var FIGURE_ACCIDENTAL_TEXT = { sharp: "\u266F", flat: "\u266D", natural: "\u266E" };
4434
+ var encodeFigureLanes = (measure, partInfos, meterUnit, indent) => {
4435
+ let xml = "";
4436
+ for (let pi = 0; pi < measure.parts.length; pi++) {
4437
+ const partOffset = partInfos[pi]?.staffOffset || 0;
4438
+ for (const voice of measure.parts[pi].voices) {
4439
+ if (!voice.figures)
4440
+ continue;
4441
+ const staffN = partOffset + (voice.staff || 1);
4442
+ for (const lane of voice.figures) {
4443
+ let at = 0;
4444
+ for (const g of lane.groups) {
4445
+ const len = 1 / g.duration.division * (2 - 2 ** -(g.duration.dots || 0));
4446
+ if (g.lines) {
4447
+ const tstamp = +(1 + at * meterUnit).toFixed(4);
4448
+ const lines = g.lines.map((l) => `<f>${l.accidental ? FIGURE_ACCIDENTAL_TEXT[l.accidental] : ""}${l.number !== void 0 ? l.number : ""}</f>`).join("");
4449
+ xml += `${indent}<harm xml:id="${generateId("harm")}" staff="${staffN}" tstamp="${tstamp}" place="${lane.placement}"><fb>${lines}</fb></harm>
4450
+ `;
4451
+ }
4452
+ at += len;
4453
+ }
4454
+ }
4455
+ }
4456
+ }
4457
+ return xml;
4458
+ };
4222
4459
  var analyzePartStructure = (doc) => {
4223
4460
  let maxParts = 0;
4224
4461
  for (const measure of doc.measures) {
@@ -4323,11 +4560,12 @@ var staffDefWithLabel = (attrs, instr, indent, channels) => {
4323
4560
  `;
4324
4561
  return xml;
4325
4562
  };
4326
- var encodeScoreDef = (keySig, timeNum, timeDen, partInfos, indent, meterSymbol, stavesCode, instruments = {}) => {
4563
+ var encodeScoreDef = (keySig, timeNum, timeDen, partInfos, indent, meterSymbol, stavesCode, instruments = {}, meterHidden = false) => {
4327
4564
  const scoreDefId = generateId("scoredef");
4328
4565
  const channels = newChannelAllocator();
4329
4566
  const meterSymAttr = meterSymbol ? ` meter.sym="${meterSymbol}"` : "";
4330
- let xml = `${indent}<scoreDef xml:id="${scoreDefId}" key.sig="${keySig}"${meterSymAttr} meter.count="${timeNum}" meter.unit="${timeDen}">
4567
+ const meterVisAttr = meterHidden ? ' meter.visible="false"' : "";
4568
+ let xml = `${indent}<scoreDef xml:id="${scoreDefId}" key.sig="${keySig}"${meterSymAttr} meter.count="${timeNum}" meter.unit="${timeDen}"${meterVisAttr}>
4331
4569
  `;
4332
4570
  const flatStaves = [];
4333
4571
  for (const info of partInfos) {
@@ -4592,6 +4830,52 @@ var applyAutoBeamToVoice = (events, beamGroups) => {
4592
4830
  last.marks.push({ markType: "beam", start: false });
4593
4831
  }
4594
4832
  };
4833
+ var computeOmitStates = (measures) => {
4834
+ const MUSICAL = /* @__PURE__ */ new Set(["note", "rest", "tuplet", "times", "tremolo"]);
4835
+ const apply = (state2, omit) => {
4836
+ if (!omit)
4837
+ return;
4838
+ if (omit.timeSignature !== void 0)
4839
+ state2.timeSignature = omit.timeSignature;
4840
+ if (omit.barLine !== void 0)
4841
+ state2.barLine = omit.barLine;
4842
+ };
4843
+ const split = (measure) => {
4844
+ const lead = [];
4845
+ const rest = [];
4846
+ for (const part of measure.parts) {
4847
+ for (const voice of part.voices) {
4848
+ let started = false;
4849
+ const walk = (events) => {
4850
+ for (const e of events) {
4851
+ if (!e)
4852
+ continue;
4853
+ if (e.type === "context" && e.omit)
4854
+ (started ? rest : lead).push(e.omit);
4855
+ else if (e.type === "tuplet" || e.type === "times")
4856
+ walk(e.events);
4857
+ if (MUSICAL.has(e.type))
4858
+ started = true;
4859
+ }
4860
+ };
4861
+ walk(voice.events);
4862
+ }
4863
+ }
4864
+ return { lead, rest };
4865
+ };
4866
+ const parts = measures.map(split);
4867
+ const state = { timeSignature: false, barLine: false };
4868
+ const meterHidden = [];
4869
+ const atStart = [];
4870
+ for (let i = 0; i < measures.length; i++) {
4871
+ parts[i].lead.forEach((o) => apply(state, o));
4872
+ atStart.push({ ...state });
4873
+ meterHidden.push(state.timeSignature);
4874
+ parts[i].rest.forEach((o) => apply(state, o));
4875
+ }
4876
+ const barHidden = measures.map((_, i) => i + 1 < measures.length ? atStart[i + 1].barLine : state.barLine);
4877
+ return { meterHidden, barHidden };
4878
+ };
4595
4879
  var encode = (doc, options = {}) => {
4596
4880
  const indent = options.indent || " ";
4597
4881
  resetIdCounter();
@@ -4673,7 +4957,8 @@ var encode = (doc, options = {}) => {
4673
4957
  `;
4674
4958
  mei += `${indent}${indent}${indent}${indent}<score xml:id="${generateId("score")}">
4675
4959
  `;
4676
- mei += encodeScoreDef(keySig, currentTimeNum, currentTimeDen, partInfos, `${indent}${indent}${indent}${indent}${indent}`, currentMeterSymbol, doc.metadata?.staves, doc.metadata?.instruments);
4960
+ const omitStates = computeOmitStates(doc.measures);
4961
+ mei += encodeScoreDef(keySig, currentTimeNum, currentTimeDen, partInfos, `${indent}${indent}${indent}${indent}${indent}`, currentMeterSymbol, doc.metadata?.staves, doc.metadata?.instruments, omitStates.meterHidden[0]);
4677
4962
  mei += `${indent}${indent}${indent}${indent}${indent}<section xml:id="${generateId("section")}">
4678
4963
  `;
4679
4964
  const expansionInsertPos = mei.length;
@@ -4763,7 +5048,8 @@ var encode = (doc, options = {}) => {
4763
5048
  currentTimeDen = newTimeDen;
4764
5049
  currentMeterSymbol = newMeterSymbol;
4765
5050
  const meterSymAttr = currentMeterSymbol ? ` meter.sym="${currentMeterSymbol}"` : "";
4766
- mei += `${indent}${indent}${indent}${indent}${indent}${indent}<scoreDef xml:id="${generateId("scoredef")}"${meterSymAttr} meter.count="${currentTimeNum}" meter.unit="${currentTimeDen}" />
5051
+ const meterVisAttr = omitStates.meterHidden[mi] ? ' meter.visible="false"' : "";
5052
+ mei += `${indent}${indent}${indent}${indent}${indent}${indent}<scoreDef xml:id="${generateId("scoredef")}"${meterSymAttr} meter.count="${currentTimeNum}" meter.unit="${currentTimeDen}"${meterVisAttr} />
4767
5053
  `;
4768
5054
  }
4769
5055
  }
@@ -4781,8 +5067,8 @@ var encode = (doc, options = {}) => {
4781
5067
  }
4782
5068
  if (key !== transState[si]) {
4783
5069
  transState[si] = key;
4784
- const c = resolveClef(startClef);
4785
- changed.push(`${indent}${indent}${indent}${indent}${indent}${indent}${indent}${indent}<staffDef xml:id="${generateId("staffdef")}" n="${si}" lines="5" clef.shape="${c.shape}" clef.line="${c.line}" trans.diat="${t.diat}" trans.semi="${t.semi}" />`);
5070
+ const clefAttrs = staffDefClefAttrs(startClef).replace(/ trans\.diat="[^"]*" trans\.semi="[^"]*"/, "");
5071
+ changed.push(`${indent}${indent}${indent}${indent}${indent}${indent}${indent}${indent}<staffDef xml:id="${generateId("staffdef")}" n="${si}" lines="5" ${clefAttrs} trans.diat="${t.diat}" trans.semi="${t.semi}" />`);
4786
5072
  }
4787
5073
  }
4788
5074
  if (changed.length > 0) {
@@ -4804,7 +5090,7 @@ var encode = (doc, options = {}) => {
4804
5090
  if (openTag)
4805
5091
  mei += openTag;
4806
5092
  const measureIndent = segDecomp ? `${mIndent}${indent}` : mIndent;
4807
- mei += encodeMeasure(measure, mIndex, measureIndent, totalStaves, tieState, slurState, hairpinState, ottavaState, currentKey, partInfos, clefState, octaveEndReplacements, measureIds, glissState);
5093
+ mei += encodeMeasure(measure, mIndex, measureIndent, totalStaves, tieState, slurState, hairpinState, ottavaState, currentKey, partInfos, clefState, octaveEndReplacements, measureIds, glissState, omitStates.barHidden[mi], currentTimeDen);
4808
5094
  const closeTag = segCloseAt.get(mIndex);
4809
5095
  if (closeTag)
4810
5096
  mei += closeTag;