Spaces:
Sleeping
Sleeping
| {"remainingRequest":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js!/home/camus/work/lotus/node_modules/ts-loader/index.js??ref--15-2!/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/staffSvg/staffNotation.ts","dependencies":[{"path":"/home/camus/work/lotus/inc/staffSvg/staffNotation.ts","mtime":1732184618441},{"path":"/home/camus/work/lotus/node_modules/cache-loader/dist/cjs.js","mtime":1719800821084},{"path":"/home/camus/work/lotus/node_modules/babel-loader/lib/index.js","mtime":1727163989637},{"path":"/home/camus/work/lotus/node_modules/ts-loader/index.js","mtime":1726221607070},{"path":"/home/camus/work/lotus/node_modules/eslint-loader/index.js","mtime":1719800837044}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgTWF0Y2hlciB9IGZyb20gIkBrLWwtbGFtYmRhL211c2ljLXdpZGdldHMiOwppbXBvcnQgTG9nUmVjb3JkZXIgZnJvbSAiLi4vbG9nUmVjb3JkZXIiOwppbXBvcnQgeyByb3VuZE51bWJlciwgY29uc3RhbnRzIH0gZnJvbSAiLi91dGlscyI7CmltcG9ydCB7IGZ1enp5TWF0Y2hOb3RhdGlvbnMsIGFzc2lnbk5vdGF0aW9uRXZlbnRzSWRzIH0gZnJvbSAiLi4vbGlseU5vdGF0aW9uIjsKaW1wb3J0IHsgU3RhZmZDb250ZXh0IH0gZnJvbSAiLi4vcGl0Y2hDb250ZXh0IjsKaW1wb3J0IHBpY2sgZnJvbSAiLi4vcGljayI7CmNvbnN0IFRJQ0tTX1BFUl9CRUFUID0gNDgwOwpjb25zdCBwYXJzZU5vdGF0aW9uSW5NZWFzdXJlID0gKGNvbnRleHQsIG1lYXN1cmUpID0+IHsKICAvL2NvbnNvbGUubG9nKCJwYXJzZU5vdGF0aW9uSW5NZWFzdXJlOiIsIG1lYXN1cmUpOwogIGNvbnRleHQucmVzZXRBbHRlcnMoKTsKICBjb25zdCBub3RlcyA9IFtdOwogIC8vY29uc3QgeHMgPSB7fTsKICBjb25zdCBwaXRjaE5vdGVzID0ge307CiAgbGV0IGtleUFsdGVyZWQgPSBmYWxzZTsKICBmb3IgKGNvbnN0IHRva2VuIG9mIG1lYXN1cmUudG9rZW5zKSB7CiAgICBpZiAoIXRva2VuLnN5bWJvbHMuc2l6ZSkgY29udGludWU7CiAgICBpZiAodG9rZW4uaXMoIkFMVEVSIikpIHsKICAgICAgLy8gaWdub3JlIGludmFsaWQgYWx0ZXJzCiAgICAgIGlmIChOdW1iZXIuaXNJbnRlZ2VyKHRva2VuLnJ5ICogMikpIHsKICAgICAgICBpZiAodG9rZW4uaXMoIktFWSIpIC8qfHwgdG9rZW4ubG9naWNYIDwgbWVhc3VyZS5oZWFkWCovKSB7CiAgICAgICAgICBpZiAoIWtleUFsdGVyZWQpIHsKICAgICAgICAgICAgY29udGV4dC5yZXNldEtleUFsdGVycygpOwogICAgICAgICAgICBrZXlBbHRlcmVkID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnRleHQuc2V0S2V5QWx0ZXIodG9rZW4ucnksIHRva2VuLmFsdGVyVmFsdWUpOwogICAgICAgIH0KICAgICAgICAvLyBhbHRlciB3aXRoIGhyZWYgbWF5IGJlIGNob3JkbW9kZSBlbGVtZW50CiAgICAgICAgZWxzZSBpZiAoIXRva2VuLmhyZWYpIGNvbnRleHQuc2V0QWx0ZXIodG9rZW4ucnksIHRva2VuLmFsdGVyVmFsdWUpOwogICAgICB9CiAgICB9IGVsc2UgaWYgKHRva2VuLmlzKCJDTEVGIikpIGNvbnRleHQuc2V0Q2xlZih0b2tlbi5yeSwgdG9rZW4uY2xlZlZhbHVlKTtlbHNlIGlmICh0b2tlbi5pcygiT0NUQVZFIikpIGNvbnRleHQuc2V0T2N0YXZlU2hpZnQodG9rZW4ub2N0YXZlU2hpZnRWYWx1ZSk7ZWxzZSBpZiAodG9rZW4uaXMoIlRJTUVfU0lHIikpIHsKICAgICAgaWYgKHRva2VuLnJ5ID09PSAwKSBjb250ZXh0LnNldEJlYXRzUGVyTWVhc3VyZSh0b2tlbi50aW1lU2lnbmF0dXJlVmFsdWUpOwogICAgfSBlbHNlIGlmICh0b2tlbi5pcygiTk9URUhFQUQiKSkgewogICAgICAvKi8vIGlnbm9yZSB0ZW1wbyBub3RlIGhlYWRzCiAgICAgIGlmICh0b2tlbi5zb3VyY2Uuc3Vic3RyKDAsIDYpID09PSAiXFx0ZW1wbyIpCiAgICAgICAgICBjb250aW51ZTsqLwogICAgICBjb25zdCBjb250ZXh0SW5kZXggPSBjb250ZXh0LnNuYXBzaG90KCk7CiAgICAgIGNvbnN0IG5vdGUgPSB7CiAgICAgICAgeDogcm91bmROdW1iZXIodG9rZW4ubG9naWNYLCAxZS00KSAtIG1lYXN1cmUubm90ZVJhbmdlLmJlZ2luLAogICAgICAgIHJ4OiB0b2tlbi5yeCAtIG1lYXN1cmUubm90ZVJhbmdlLmJlZ2luLAogICAgICAgIHk6IHRva2VuLnJ5LAogICAgICAgIHBpdGNoOiBjb250ZXh0LnlUb1BpdGNoKHRva2VuLnJ5KSwKICAgICAgICBpZDogdG9rZW4uaHJlZiwKICAgICAgICB0aWVkOiB0b2tlbi50aWVkLAogICAgICAgIGNvbnRleHRJbmRleCwKICAgICAgICB0eXBlOiB0b2tlbi5ub3RlVHlwZSwKICAgICAgICBzdGVtVXA6IHRva2VuLnN0ZW1VcAogICAgICB9OwogICAgICBub3Rlcy5wdXNoKG5vdGUpOwogICAgICAvL3hzW25vdGUucnhdID0geHNbbm90ZS5yeF0gfHwgbmV3IFNldCgpOwogICAgICAvL3hzW25vdGUucnhdLmFkZCh0b2tlbi5yeSk7CiAgICAgIHBpdGNoTm90ZXNbbm90ZS5waXRjaF0gPSBwaXRjaE5vdGVzW25vdGUucGl0Y2hdIHx8IFtdOwogICAgICBwaXRjaE5vdGVzW25vdGUucGl0Y2hdLnB1c2gobm90ZSk7CiAgICB9CiAgfQogIC8vIG1lcmdlIGZpcnN0IGRlZ3JlZSBzaWRlIGJ5IHNpZGUgbm90ZXMKICBPYmplY3QudmFsdWVzKHBpdGNoTm90ZXMpLmZvckVhY2gobm90ZXMgPT4gewogICAgLy9ub3Rlcy5sZW5ndGggPiAxICYmIGNvbnNvbGUubG9nKCJub3RlczoiLCBub3Rlcyk7CiAgICBmb3IgKGxldCBpID0gMTsgaSA8IG5vdGVzLmxlbmd0aDsgKytpKSB7CiAgICAgIGNvbnN0IG5vdGUgPSBub3Rlc1tpXTsKICAgICAgY29uc3QgbGFzdE5vdGUgPSBub3Rlc1tpIC0gMV07CiAgICAgIGlmIChub3RlLnJ4IC0gbGFzdE5vdGUucnggPD0gMS41ICYmIG5vdGUuc3RlbVVwICE9PSBsYXN0Tm90ZS5zdGVtVXApIG5vdGUudGllZCA9IHRydWU7CiAgICB9CiAgfSk7CiAgY29uc3QgZHVyYXRpb24gPSBjb250ZXh0LmJlYXRzUGVyTWVhc3VyZSAqIFRJQ0tTX1BFUl9CRUFUOwogIC8vY29uc29sZS5sb2coIm5vdGVzOiIsIG5vdGVzKTsKICBub3Rlcy5mb3JFYWNoKG5vdGUgPT4gewogICAgLyovLyBtZXJnZSBmaXJzdCBkZWdyZWUgc2lkZSBieSBzaWRlIG5vdGVzCiAgICBpZiAoeHNbbm90ZS5yeCAtIDEuNV0gJiYgeHNbbm90ZS5yeCAtIDEuNV0uaGFzKG5vdGUueSkpCiAgICAgICAgbm90ZS54IC09IGNvbnN0YW50cy5DTE9TRURfTk9URUhFQURfSU5URVJWQUxfRklSU1RfREVHOwogICAgZWxzZSBpZiAoeHNbbm90ZS5yeCAtIDEuMjVdICYmIHhzW25vdGUucnggLSAxLjI1XS5oYXMobm90ZS55KSkKICAgICAgICBub3RlLnggLT0gY29uc3RhbnRzLkNMT1NFRF9OT1RFSEVBRF9JTlRFUlZBTF9GSVJTVF9ERUc7Ki8KICAgIGNvbnRleHQudHJhY2suYXBwZW5kTm90ZShub3RlLngsIHsKICAgICAgcGl0Y2g6IG5vdGUucGl0Y2gsCiAgICAgIGlkOiBub3RlLmlkLAogICAgICB0aWVkOiBub3RlLnRpZWQsCiAgICAgIGNvbnRleHRJbmRleDogbm90ZS5jb250ZXh0SW5kZXgsCiAgICAgIHR5cGU6IG5vdGUudHlwZQogICAgfSk7CiAgfSk7CiAgY29udGV4dC50cmFjay5lbmRUaW1lICs9IGR1cmF0aW9uOwp9Owpjb25zdCBwYXJzZU5vdGF0aW9uSW5TdGFmZiA9IChjb250ZXh0LCBzdGFmZikgPT4gewogIC8vY29uc29sZS5sb2coInBhcnNlTm90YXRpb25JblN0YWZmOiIsIHN0YWZmKTsKICBjb250ZXh0LnJlc2V0S2V5QWx0ZXJzKCk7CiAgaWYgKHN0YWZmKSB7CiAgICBmb3IgKGNvbnN0IG1lYXN1cmUgb2Ygc3RhZmYubWVhc3VyZXMpIHBhcnNlTm90YXRpb25Jbk1lYXN1cmUoY29udGV4dCwgbWVhc3VyZSk7CiAgfQp9Owo7CmNvbnN0IHBhcnNlTm90YXRpb25Gcm9tU2hlZXREb2N1bWVudCA9IChkb2N1bWVudCwgewogIGxvZ2dlciA9IG5ldyBMb2dSZWNvcmRlcigpCn0gPSB7fSkgPT4gewogIGlmICghZG9jdW1lbnQudHJhY2tDb3VudCkgcmV0dXJuIG51bGw7CiAgY29uc3QgY29udGV4dHMgPSBBcnJheShkb2N1bWVudC50cmFja0NvdW50KS5maWxsKG51bGwpLm1hcCgoKSA9PiBuZXcgU3RhZmZDb250ZXh0KHsKICAgIGxvZ2dlcgogIH0pKTsKICBmb3IgKGNvbnN0IHBhZ2Ugb2YgZG9jdW1lbnQucGFnZXMpIHsKICAgIGxvZ2dlci5hcHBlbmQoInBhcnNlUGFnZSIsIGRvY3VtZW50LnBhZ2VzLmluZGV4T2YocGFnZSkpOwogICAgZm9yIChjb25zdCBzeXN0ZW0gb2YgcGFnZS5zeXN0ZW1zKSB7CiAgICAgIGxvZ2dlci5hcHBlbmQoInBhcnNlU3lzdGVtIiwgcGFnZS5zeXN0ZW1zLmluZGV4T2Yoc3lzdGVtKSk7CiAgICAgIGNvbnNvbGUuYXNzZXJ0KHN5c3RlbS5zdGF2ZXMubGVuZ3RoID09PSBjb250ZXh0cy5sZW5ndGgsICJzdGF2ZXMgc2l6ZSBtaXNtYXRjaGVkOiIsIGNvbnRleHRzLmxlbmd0aCwgc3lzdGVtLnN0YXZlcy5sZW5ndGgpOwogICAgICBpZiAoc3lzdGVtLnN0YXZlcy5sZW5ndGggIT09IGNvbnRleHRzLmxlbmd0aCkgbG9nZ2VyLmFwcGVuZCgibWlzbWF0Y2hlZFN0YXZlcyIsIHsKICAgICAgICBjb250ZXh0TGVuOiBjb250ZXh0cy5sZW5ndGgsCiAgICAgICAgc3RhdmVzTGVuOiBzeXN0ZW0uc3RhdmVzLmxlbmd0aCwKICAgICAgICBzeXN0ZW0KICAgICAgfSk7CiAgICAgIHN5c3RlbS5zdGF2ZXMuZm9yRWFjaCgoc3RhZmYsIGkpID0+IHsKICAgICAgICBsb2dnZXIuYXBwZW5kKCJwYXJzZVN0YWZmIiwgaSk7CiAgICAgICAgaWYgKGNvbnRleHRzW2ldKSBwYXJzZU5vdGF0aW9uSW5TdGFmZihjb250ZXh0c1tpXSwgc3RhZmYpOwogICAgICB9KTsKICAgIH0KICB9CiAgLy9jb25zb2xlLmxvZygicmVzdWx0OiIsIGNvbnRleHRzKTsKICAvLyBtZXJnZSB0cmFja3MKICBjb250ZXh0cy5mb3JFYWNoKChjb250ZXh0LCB0KSA9PiBjb250ZXh0LnRyYWNrLm5vdGVzLmZvckVhY2gobm90ZSA9PiBub3RlLnRyYWNrID0gdCkpOwogIGNvbnN0IG5vdGVzID0gW10uY29uY2F0KC4uLmNvbnRleHRzLm1hcChjb250ZXh0ID0+IGNvbnRleHQudHJhY2subm90ZXMpKS5zb3J0KChuMSwgbjIpID0+IG4xLnRpbWUgLSBuMi50aW1lICsgKG4xLnBpdGNoIC0gbjIucGl0Y2gpICogLTFlLTMpOwogIGxvZ2dlci5hcHBlbmQoIm5vdGVzQmVmb3JlQ2x1c3Rlcml6ZSIsIG5vdGVzLm1hcChub3RlID0+IHBpY2sobm90ZSwgWyJ0aW1lIiwgInBpdGNoIl0pKSk7CiAgY2x1c3Rlcml6ZU5vdGVzKG5vdGVzKTsKICByZXR1cm4gewogICAgZW5kVGltZTogY29udGV4dHNbMF0udHJhY2suZW5kVGltZSwKICAgIG5vdGVzLAogICAgcGl0Y2hDb250ZXh0czogY29udGV4dHMubWFwKGNvbnRleHQgPT4gY29udGV4dC50cmFjay5jb250ZXh0cykKICB9Owp9Owpjb25zdCBhc3NpZ25UaWNrQnlMb2NhdGlvblRhYmxlID0gKG5vdGF0aW9uLCBsb2NhdGlvblRpY2tUYWJsZSkgPT4gewogIG5vdGF0aW9uLm5vdGVzLmZvckVhY2gobm90ZSA9PiB7CiAgICBjb25zdCBsb2NhdGlvbiA9IG5vdGUuaWQgJiYgbm90ZS5pZC5tYXRjaCgvXlxkKzpcZCsvKVswXTsKICAgIGlmIChsb2NhdGlvblRpY2tUYWJsZVtsb2NhdGlvbl0gPT09IHVuZGVmaW5lZCkgewogICAgICBpZiAobm90ZS5pZCkgewogICAgICAgIGNvbnN0IFtsaW5lLCBjb2x1bW5dID0gbm90ZS5pZC5tYXRjaCgvXGQrL2cpLm1hcChOdW1iZXIpOwogICAgICAgIGZvciAobGV0IGMgPSBjb2x1bW4gLSAxOyBjID49IDA7IC0tYykgewogICAgICAgICAgY29uc3QgbG9jID0gYCR7bGluZX06JHtjfWA7CiAgICAgICAgICBpZiAobG9jYXRpb25UaWNrVGFibGVbbG9jXSkgewogICAgICAgICAgICBub3RlLnRpbWUgPSBsb2NhdGlvblRpY2tUYWJsZVtsb2NdOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGNvbnNvbGUud2FybigiW2Fzc2lnblRpY2tCeUxvY2F0aW9uVGFibGVdCWxvY2F0aW9uIG5vdCBmb3VuZCBpbiB0YWJsZToiLCBsb2NhdGlvbik7CiAgICAgIHJldHVybjsKICAgIH0KICAgIG5vdGUudGltZSA9IGxvY2F0aW9uVGlja1RhYmxlW2xvY2F0aW9uXTsKICB9KTsKfTsKY29uc3QgeENsdXN0ZXJpemUgPSB4ID0+IE1hdGgudGFuaCgoeCAvIDEuMikgKiogMTIpOwpjb25zdCBDTFVTVEVSSVpFX1dJRFRIX0ZBQ1RPUlMgPSBbMSwgMSwgLjUsIC41XTsKLy8gZ2V0IHRpbWUgY2xvc2VkIGZvciBub3RlcyBpbiBhIGNob3JkCmNvbnN0IGNsdXN0ZXJpemVOb3RlcyA9IG5vdGVzID0+IHsKICBub3Rlcy5mb3JFYWNoKChub3RlLCBpKSA9PiB7CiAgICBpZiAoaSA8IDEpIG5vdGUuZGVsdGFUaW1lID0gMDtlbHNlIHsKICAgICAgY29uc3QgZGVsdGEgPSBub3RlLnRpbWUgLSBub3Rlc1tpIC0gMV0udGltZTsKICAgICAgY29uc3Qgbm90ZVR5cGUgPSBNYXRoLm1pbihub3RlLnR5cGUsIG5vdGVzW2kgLSAxXS50eXBlKTsKICAgICAgbm90ZS5kZWx0YVRpbWUgPSB4Q2x1c3Rlcml6ZShkZWx0YSAvIChjb25zdGFudHMuTk9URV9UWVBFX1dJRFRIU1tub3RlVHlwZV0gKiBDTFVTVEVSSVpFX1dJRFRIX0ZBQ1RPUlNbbm90ZVR5cGVdKSk7CiAgICB9CiAgfSk7CiAgbm90ZXMuZm9yRWFjaCgobm90ZSwgaSkgPT4gaSA+IDAgJiYgKG5vdGUudGltZSA9IG5vdGVzW2kgLSAxXS50aW1lICsgbm90ZS5kZWx0YVRpbWUgKiA0ODApKTsKfTsKY29uc3QgbWF0Y2hOb3RhdGlvbnMgPSBhc3luYyAobWlkaU5vdGF0aW9uLCBzdmdOb3RhdGlvbiwgewogIGVuYWJsZUZ1enp5ID0gdHJ1ZQp9ID0ge30pID0+IHsKICBjb25zb2xlLmFzc2VydChtaWRpTm90YXRpb24sICJtaWRpTm90YXRpb24gaXMgbnVsbC4iKTsKICBjb25zb2xlLmFzc2VydChzdmdOb3RhdGlvbiwgInN2Z05vdGF0aW9uIGlzIG51bGwuIik7CiAgY29uc3QgVElNRV9GQUNUT1IgPSA0OwogIC8vIG1hcCBzdmdOb3RhdGlvbiB3aXRob3V0IGR1cGxpY2F0ZWQgb25lcwogIGNvbnN0IG5vdGVNYXAgPSB7fTsKICBjb25zdCBub3RlUE1hcCA9IHt9OwogIGNvbnN0IHN2Z05vdGVzID0gc3ZnTm90YXRpb24ubm90ZXMucmVkdWNlKChub3Rlcywgbm90ZSkgPT4gewogICAgaWYgKG5vdGUudGllZCkgewogICAgICBpZiAobm90ZVBNYXBbbm90ZS5waXRjaF0pIHsKICAgICAgICBjb25zdCB0aWVOb3RlID0gbm90ZVBNYXBbbm90ZS5waXRjaF07CiAgICAgICAgdGllTm90ZS5pZHMgPSB0aWVOb3RlLmlkcyB8fCBbdGllTm90ZS5pZF07CiAgICAgICAgdGllTm90ZS5pZHMucHVzaChub3RlLmlkKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgY29uc3QgaW5kZXggPSBgJHtub3RlLnRpbWV9LSR7bm90ZS5waXRjaH1gOwogICAgICBpZiAobm90ZU1hcFtpbmRleF0pIHsKICAgICAgICBub3RlTWFwW2luZGV4XS5pZHMgPSBub3RlTWFwW2luZGV4XS5pZHMgfHwgW25vdGVNYXBbaW5kZXhdLmlkXTsKICAgICAgICBub3RlTWFwW2luZGV4XS5pZHMucHVzaChub3RlLmlkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBzbiA9IHsKICAgICAgICAgIHN0YXJ0OiBub3RlLnRpbWUgKiBUSU1FX0ZBQ1RPUiwKICAgICAgICAgIHBpdGNoOiBub3RlLnBpdGNoLAogICAgICAgICAgaWQ6IG5vdGUuaWQsCiAgICAgICAgICB0cmFjazogbm90ZS50cmFjaywKICAgICAgICAgIGNvbnRleHRJbmRleDogbm90ZS5jb250ZXh0SW5kZXgKICAgICAgICB9OwogICAgICAgIG5vdGVNYXBbaW5kZXhdID0gc247CiAgICAgICAgbm90ZVBNYXBbc24ucGl0Y2hdID0gc247CiAgICAgICAgbm90ZXMucHVzaChzbik7CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBub3RlczsKICB9LCBbXSkubWFwKChub3RlLCBpbmRleCkgPT4gKHsKICAgIGluZGV4LAogICAgLi4ubm90ZQogIH0pKTsKICBjb25zdCBjcml0ZXJpb24gPSB7CiAgICBub3Rlczogc3ZnTm90ZXMsCiAgICBwaXRjaE1hcDogbnVsbAogIH07CiAgY3JpdGVyaW9uLnBpdGNoTWFwID0gY3JpdGVyaW9uLm5vdGVzLnJlZHVjZSgobWFwLCBub3RlKSA9PiB7CiAgICBtYXBbbm90ZS5waXRjaF0gPSBtYXBbbm90ZS5waXRjaF0gfHwgW107CiAgICBtYXBbbm90ZS5waXRjaF0ucHVzaChub3RlKTsKICAgIHJldHVybiBtYXA7CiAgfSwgW10pOwogIGNvbnN0IHNhbXBsZSA9IHsKICAgIG5vdGVzOiBtaWRpTm90YXRpb24ubm90ZXMubWFwKCh7CiAgICAgIHN0YXJ0VGljaywKICAgICAgcGl0Y2gKICAgIH0sIGluZGV4KSA9PiAoewogICAgICBpbmRleCwKICAgICAgc3RhcnQ6IHN0YXJ0VGljayAqIFRJTUVfRkFDVE9SLAogICAgICBwaXRjaAogICAgfSkpCiAgfTsKICBNYXRjaGVyLmdlbk5vdGF0aW9uQ29udGV4dChjcml0ZXJpb24pOwogIE1hdGNoZXIuZ2VuTm90YXRpb25Db250ZXh0KHNhbXBsZSk7CiAgLy9jb25zb2xlLmxvZygiY3JpdGVyaW9uOiIsIGNyaXRlcmlvbiwgc2FtcGxlKTsKICBmb3IgKGNvbnN0IG5vdGUgb2Ygc2FtcGxlLm5vdGVzKSBNYXRjaGVyLm1ha2VNYXRjaE5vZGVzKG5vdGUsIGNyaXRlcmlvbik7CiAgLy9jb25zb2xlLmxvZygiYmVmb3JlLnJ1bk5hdmlnYXRpb246IiwgcGVyZm9ybWFuY2Uubm93KCkpOwogIGNvbnN0IG5hdmlnYXRvciA9IGF3YWl0IE1hdGNoZXIucnVuTmF2aWdhdGlvbihjcml0ZXJpb24sIHNhbXBsZSk7CiAgLy9jb25zb2xlLmxvZygibmF2aWdhdG9yOiIsIG5hdmlnYXRvcik7CiAgLy9jb25zb2xlLmxvZygiYWZ0ZXIucnVuTmF2aWdhdGlvbjoiLCBwZXJmb3JtYW5jZS5ub3coKSk7CiAgY29uc3QgcGF0aCA9IG5hdmlnYXRvci5wYXRoKCk7CiAgLy9jb25zdCBwYXRoID0gbmF2aWdhdG9yLnNhbXBsZS5ub3Rlcy5tYXAobm90ZSA9PiBub3RlLm1hdGNoZXNbMF0gPyBub3RlLm1hdGNoZXNbMF0uY2kgOiAtMSk7CiAgaWYgKGVuYWJsZUZ1enp5KSBmdXp6eU1hdGNoTm90YXRpb25zKHBhdGgsIGNyaXRlcmlvbiwgc2FtcGxlKTsKICAvL2NvbnNvbGUubG9nKCJwYXRoOiIsIHBhdGgpOwogIC8vY29uc29sZS5sb2coImFmdGVyLnBhdGg6IiwgcGVyZm9ybWFuY2Uubm93KCkpOwogIHBhdGguZm9yRWFjaCgoY2ksIHNpKSA9PiB7CiAgICBpZiAoY2kgPj0gMCkgewogICAgICBjb25zdCBjbiA9IGNyaXRlcmlvbi5ub3Rlc1tjaV07CiAgICAgIGNvbnN0IGlkcyA9IGNuLmlkcyB8fCBbY24uaWRdOwogICAgICBtaWRpTm90YXRpb24ubm90ZXNbc2ldLmlkcyA9IGlkczsKICAgICAgbWlkaU5vdGF0aW9uLm5vdGVzW3NpXS5zdGFmZlRyYWNrID0gY24udHJhY2s7CiAgICAgIG1pZGlOb3RhdGlvbi5ub3Rlc1tzaV0uY29udGV4dEluZGV4ID0gY24uY29udGV4dEluZGV4OwogICAgfQogIH0pOwogIC8vY29uc29sZS5sb2coImFmdGVyLnBhdGguZm9yRWFjaDoiLCBwZXJmb3JtYW5jZS5ub3coKSk7CiAgLy8gYXNzaWduIGlkcyBvbnRvIE1JREkgZXZlbnRzCiAgYXNzaWduTm90YXRpb25FdmVudHNJZHMobWlkaU5vdGF0aW9uKTsKICAvL2NvbnNvbGUubG9nKCJhZnRlci5pZHM6IiwgcGVyZm9ybWFuY2Uubm93KCkpOwogIC8vY29uc29sZS5sb2coIm1pZGlOb3RhdGlvbjoiLCBtaWRpTm90YXRpb24uZXZlbnRzKTsKICByZXR1cm4gewogICAgY3JpdGVyaW9uLAogICAgc2FtcGxlLAogICAgcGF0aAogIH07Cn07CmNvbnN0IGFzc2lnbklkcyA9IChtaWRpTm90YXRpb24sIG5vdGVJZHMpID0+IHsKICBub3RlSWRzLmZvckVhY2goKGlkcywgaSkgPT4gewogICAgY29uc3Qgbm90ZSA9IG1pZGlOb3RhdGlvbi5ub3Rlc1tpXTsKICAgIGlmIChub3RlICYmIGlkcykgbm90ZS5pZHMgPSBpZHM7CiAgfSk7CiAgYXNzaWduTm90YXRpb25FdmVudHNJZHMobWlkaU5vdGF0aW9uKTsKfTsKZXhwb3J0IHsgcGFyc2VOb3RhdGlvbkZyb21TaGVldERvY3VtZW50LCBhc3NpZ25UaWNrQnlMb2NhdGlvblRhYmxlLCBtYXRjaE5vdGF0aW9ucywgYXNzaWduSWRzIH07"},{"version":3,"names":["Matcher","LogRecorder","roundNumber","constants","fuzzyMatchNotations","assignNotationEventsIds","StaffContext","pick","TICKS_PER_BEAT","parseNotationInMeasure","context","measure","resetAlters","notes","pitchNotes","keyAltered","token","tokens","symbols","size","is","Number","isInteger","ry","resetKeyAlters","setKeyAlter","alterValue","href","setAlter","setClef","clefValue","setOctaveShift","octaveShiftValue","setBeatsPerMeasure","timeSignatureValue","contextIndex","snapshot","note","x","logicX","noteRange","begin","rx","y","pitch","yToPitch","id","tied","type","noteType","stemUp","push","Object","values","forEach","i","length","lastNote","duration","beatsPerMeasure","track","appendNote","endTime","parseNotationInStaff","staff","measures","parseNotationFromSheetDocument","document","logger","trackCount","contexts","Array","fill","map","page","pages","append","indexOf","system","systems","console","assert","staves","contextLen","stavesLen","t","concat","sort","n1","n2","time","clusterizeNotes","pitchContexts","assignTickByLocationTable","notation","locationTickTable","location","match","undefined","line","column","c","loc","warn","xClusterize","Math","tanh","CLUSTERIZE_WIDTH_FACTORS","deltaTime","delta","min","NOTE_TYPE_WIDTHS","matchNotations","midiNotation","svgNotation","enableFuzzy","TIME_FACTOR","noteMap","notePMap","svgNotes","reduce","tieNote","ids","index","sn","start","criterion","pitchMap","sample","startTick","genNotationContext","makeMatchNodes","navigator","runNavigation","path","ci","si","cn","staffTrack","assignIds","noteIds"],"sources":["/home/camus/work/lotus/node_modules/eslint-loader/index.js??ref--14-0!/home/camus/work/lotus/inc/staffSvg/staffNotation.ts"],"sourcesContent":["\nimport {Matcher} from \"@k-l-lambda/music-widgets\";\n// eslint-disable-next-line\nimport {MusicNotation} from \"@k-l-lambda/music-widgets\";\n\nimport LogRecorder from \"../logRecorder\";\nimport {roundNumber, constants} from \"./utils\";\nimport {fuzzyMatchNotations, assignNotationEventsIds} from \"../lilyNotation\";\nimport {StaffContext} from \"../pitchContext\";\n// eslint-disable-next-line\nimport {PitchContext} from \"../pitchContext\";\nimport pick from \"../pick\";\n\n\n\nconst TICKS_PER_BEAT = 480;\n\n\nconst parseNotationInMeasure = (context: StaffContext, measure) => {\n\t//console.log(\"parseNotationInMeasure:\", measure);\n\n\tcontext.resetAlters();\n\n\tconst notes = [];\n\t//const xs = {};\n\tconst pitchNotes: {[key: number]: any[]} = {};\n\n\tlet keyAltered = false;\n\n\tfor (const token of measure.tokens) {\n\t\tif (!token.symbols.size)\n\t\t\tcontinue;\n\n\t\tif (token.is(\"ALTER\")) {\n\t\t\t// ignore invalid alters\n\t\t\tif (Number.isInteger(token.ry * 2)) {\n\t\t\t\tif (token.is(\"KEY\") /*|| token.logicX < measure.headX*/) {\n\t\t\t\t\tif (!keyAltered) {\n\t\t\t\t\t\tcontext.resetKeyAlters();\n\t\t\t\t\t\tkeyAltered = true;\n\t\t\t\t\t}\n\t\t\t\t\tcontext.setKeyAlter(token.ry, token.alterValue);\n\t\t\t\t}\n\t\t\t\t// alter with href may be chordmode element\n\t\t\t\telse if (!token.href)\n\t\t\t\t\tcontext.setAlter(token.ry, token.alterValue);\n\t\t\t}\n\t\t}\n\t\telse if (token.is(\"CLEF\")) \n\t\t\tcontext.setClef(token.ry, token.clefValue);\n\n\t\telse if (token.is(\"OCTAVE\")) \n\t\t\tcontext.setOctaveShift(token.octaveShiftValue);\n\n\t\telse if (token.is(\"TIME_SIG\")) {\n\t\t\tif (token.ry === 0)\n\t\t\t\tcontext.setBeatsPerMeasure(token.timeSignatureValue);\n\t\t}\n\t\telse if (token.is(\"NOTEHEAD\")) {\n\t\t\t/*// ignore tempo note heads\n\t\t\tif (token.source.substr(0, 6) === \"\\\\tempo\")\n\t\t\t\tcontinue;*/\n\n\t\t\tconst contextIndex = context.snapshot();\n\n\t\t\tconst note = {\n\t\t\t\tx: roundNumber(token.logicX, 1e-4) - measure.noteRange.begin,\n\t\t\t\trx: token.rx - measure.noteRange.begin,\n\t\t\t\ty: token.ry,\n\t\t\t\tpitch: context.yToPitch(token.ry),\n\t\t\t\tid: token.href,\n\t\t\t\ttied: token.tied,\n\t\t\t\tcontextIndex,\n\t\t\t\ttype: token.noteType,\n\t\t\t\tstemUp: token.stemUp,\n\t\t\t};\n\t\t\tnotes.push(note);\n\n\t\t\t//xs[note.rx] = xs[note.rx] || new Set();\n\t\t\t//xs[note.rx].add(token.ry);\n\n\t\t\tpitchNotes[note.pitch] = pitchNotes[note.pitch] || [];\n\t\t\tpitchNotes[note.pitch].push(note);\n\t\t}\n\t}\n\n\t// merge first degree side by side notes\n\tObject.values(pitchNotes).forEach(notes => {\n\t\t//notes.length > 1 && console.log(\"notes:\", notes);\n\t\tfor (let i = 1; i < notes.length; ++i) {\n\t\t\tconst note = notes[i];\n\t\t\tconst lastNote = notes[i - 1];\n\t\t\tif (note.rx - lastNote.rx <= 1.5 && note.stemUp !== lastNote.stemUp)\n\t\t\t\tnote.tied = true;\n\t\t}\n\t});\n\n\tconst duration = context.beatsPerMeasure * TICKS_PER_BEAT;\n\n\t//console.log(\"notes:\", notes);\n\tnotes.forEach(note => {\n\t\t/*// merge first degree side by side notes\n\t\tif (xs[note.rx - 1.5] && xs[note.rx - 1.5].has(note.y))\n\t\t\tnote.x -= constants.CLOSED_NOTEHEAD_INTERVAL_FIRST_DEG;\n\t\telse if (xs[note.rx - 1.25] && xs[note.rx - 1.25].has(note.y))\n\t\t\tnote.x -= constants.CLOSED_NOTEHEAD_INTERVAL_FIRST_DEG;*/\n\n\t\tcontext.track.appendNote(note.x, {\n\t\t\tpitch: note.pitch,\n\t\t\tid: note.id,\n\t\t\ttied: note.tied,\n\t\t\tcontextIndex: note.contextIndex,\n\t\t\ttype: note.type,\n\t\t});\n\t});\n\n\tcontext.track.endTime += duration;\n};\n\n\nconst parseNotationInStaff = (context : StaffContext, staff) => {\n\t//console.log(\"parseNotationInStaff:\", staff);\n\tcontext.resetKeyAlters();\n\n\tif (staff) {\n\t\tfor (const measure of staff.measures)\n\t\t\tparseNotationInMeasure(context, measure);\n\t}\n};\n\n\ninterface SheetNotation extends MusicNotation.NotationData {\n\tpitchContexts: PitchContext[][];\n};\n\n\nconst parseNotationFromSheetDocument = (document, {logger = new LogRecorder()} = {}): SheetNotation => {\n\tif (!document.trackCount)\n\t\treturn null;\n\n\tconst contexts = Array(document.trackCount).fill(null).map(() => new StaffContext({logger}));\n\n\tfor (const page of document.pages) {\n\t\tlogger.append(\"parsePage\", document.pages.indexOf(page));\n\n\t\tfor (const system of page.systems) {\n\t\t\tlogger.append(\"parseSystem\", page.systems.indexOf(system));\n\n\t\t\tconsole.assert(system.staves.length === contexts.length, \"staves size mismatched:\", contexts.length, system.staves.length);\n\t\t\tif (system.staves.length !== contexts.length)\n\t\t\t\tlogger.append(\"mismatchedStaves\", {contextLen: contexts.length, stavesLen: system.staves.length, system});\n\n\t\t\tsystem.staves.forEach((staff, i) => {\n\t\t\t\tlogger.append(\"parseStaff\", i);\n\t\t\t\tif (contexts[i])\n\t\t\t\t\tparseNotationInStaff(contexts[i], staff);\n\t\t\t});\n\t\t}\n\t}\n\n\t//console.log(\"result:\", contexts);\n\n\t// merge tracks\n\tcontexts.forEach((context, t) => context.track.notes.forEach(note => note.track = t));\n\tconst notes = [].concat(...contexts.map(context => context.track.notes)).sort((n1, n2) => (n1.time - n2.time) + (n1.pitch - n2.pitch) * -1e-3);\n\n\tlogger.append(\"notesBeforeClusterize\", notes.map(note => pick(note, [\"time\", \"pitch\"])));\n\n\tclusterizeNotes(notes);\n\n\treturn {\n\t\tendTime: contexts[0].track.endTime,\n\t\tnotes,\n\t\tpitchContexts: contexts.map(context => context.track.contexts),\n\t};\n};\n\n\nconst assignTickByLocationTable = (notation: SheetNotation, locationTickTable: {[key: string]: number}) => {\n\tnotation.notes.forEach((note: any) => {\n\t\tconst location = note.id && note.id.match(/^\\d+:\\d+/)[0];\n\t\tif (locationTickTable[location] === undefined) {\n\t\t\tif (note.id) {\n\t\t\t\tconst [line, column] = note.id.match(/\\d+/g).map(Number);\n\t\t\t\tfor (let c = column - 1; c >= 0; --c) {\n\t\t\t\t\tconst loc = `${line}:${c}`;\n\t\t\t\t\tif (locationTickTable[loc]) {\n\t\t\t\t\t\tnote.time = locationTickTable[loc];\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconsole.warn(\"[assignTickByLocationTable]\tlocation not found in table:\", location);\n\t\t\treturn;\n\t\t}\n\n\t\tnote.time = locationTickTable[location];\n\t});\n};\n\n\nconst xClusterize = x => Math.tanh((x / 1.2) ** 12);\n\nconst CLUSTERIZE_WIDTH_FACTORS = [1, 1, .5, .5];\n\n\n// get time closed for notes in a chord\nconst clusterizeNotes = notes => {\n\tnotes.forEach((note, i) => {\n\t\tif (i < 1)\n\t\t\tnote.deltaTime = 0;\n\t\telse {\n\t\t\tconst delta = note.time - notes[i - 1].time;\n\t\t\tconst noteType = Math.min(note.type, notes[i - 1].type);\n\n\t\t\tnote.deltaTime = xClusterize(delta / (constants.NOTE_TYPE_WIDTHS[noteType] * CLUSTERIZE_WIDTH_FACTORS[noteType]));\n\t\t}\n\t});\n\n\tnotes.forEach((note, i) => i > 0 && (note.time = notes[i - 1].time + note.deltaTime * 480));\n};\n\n\nconst matchNotations = async (midiNotation, svgNotation, {enableFuzzy = true} = {}) => {\n\tconsole.assert(midiNotation, \"midiNotation is null.\");\n\tconsole.assert(svgNotation, \"svgNotation is null.\");\n\n\tconst TIME_FACTOR = 4;\n\n\t// map svgNotation without duplicated ones\n\tconst noteMap = {};\n\tconst notePMap = {};\n\tconst svgNotes = svgNotation.notes.reduce((notes, note) => {\n\t\tif (note.tied) {\n\t\t\tif (notePMap[note.pitch]) {\n\t\t\t\tconst tieNote = notePMap[note.pitch];\n\t\t\t\ttieNote.ids = tieNote.ids || [tieNote.id];\n\t\t\t\ttieNote.ids.push(note.id);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tconst index = `${note.time}-${note.pitch}`;\n\t\t\tif (noteMap[index]) {\n\t\t\t\tnoteMap[index].ids = noteMap[index].ids || [noteMap[index].id];\n\t\t\t\tnoteMap[index].ids.push(note.id);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tconst sn = {start: note.time * TIME_FACTOR, pitch: note.pitch, id: note.id, track: note.track, contextIndex: note.contextIndex};\n\t\t\t\tnoteMap[index] = sn;\n\t\t\t\tnotePMap[sn.pitch] = sn;\n\t\t\t\tnotes.push(sn);\n\t\t\t}\n\t\t}\n\n\t\treturn notes;\n\t}, []).map((note, index) => ({index, ...note}));\n\n\tconst criterion = {\n\t\tnotes: svgNotes,\n\t\tpitchMap: null,\n\t};\n\tcriterion.pitchMap = criterion.notes.reduce((map, note) => {\n\t\tmap[note.pitch] = map[note.pitch] || [];\n\t\tmap[note.pitch].push(note);\n\n\t\treturn map;\n\t}, []);\n\n\tconst sample = {\n\t\tnotes: midiNotation.notes.map(({startTick, pitch}, index) => ({index, start: startTick * TIME_FACTOR, pitch})),\n\t};\n\n\tMatcher.genNotationContext(criterion);\n\tMatcher.genNotationContext(sample);\n\t//console.log(\"criterion:\", criterion, sample);\n\n\tfor (const note of sample.notes)\n\t\tMatcher.makeMatchNodes(note, criterion);\n\n\t//console.log(\"before.runNavigation:\", performance.now());\n\tconst navigator = await Matcher.runNavigation(criterion, sample);\n\t//console.log(\"navigator:\", navigator);\n\t//console.log(\"after.runNavigation:\", performance.now());\n\n\tconst path = navigator.path();\n\t//const path = navigator.sample.notes.map(note => note.matches[0] ? note.matches[0].ci : -1);\n\n\tif (enableFuzzy)\n\t\tfuzzyMatchNotations(path, criterion, sample);\n\n\t//console.log(\"path:\", path);\n\t//console.log(\"after.path:\", performance.now());\n\n\tpath.forEach((ci, si) => {\n\t\tif (ci >= 0) {\n\t\t\tconst cn = criterion.notes[ci];\n\t\t\tconst ids = cn.ids || [cn.id];\n\t\t\tmidiNotation.notes[si].ids = ids;\n\t\t\tmidiNotation.notes[si].staffTrack = cn.track;\n\t\t\tmidiNotation.notes[si].contextIndex = cn.contextIndex;\n\t\t}\n\t});\n\t//console.log(\"after.path.forEach:\", performance.now());\n\n\t// assign ids onto MIDI events\n\tassignNotationEventsIds(midiNotation);\n\n\t//console.log(\"after.ids:\", performance.now());\n\t//console.log(\"midiNotation:\", midiNotation.events);\n\n\treturn {criterion, sample, path};\n};\n\n\nconst assignIds = (midiNotation: MusicNotation.NotationData, noteIds: string[][]) => {\n\tnoteIds.forEach((ids, i) => {\n\t\tconst note = midiNotation.notes[i];\n\t\tif (note && ids)\n\t\t\tnote.ids = ids;\n\t});\n\n\tassignNotationEventsIds(midiNotation);\n};\n\n\n\nexport {\n\tparseNotationFromSheetDocument,\n\tassignTickByLocationTable,\n\tmatchNotations,\n\tassignIds,\n\tSheetNotation,\n};\n"],"mappings":"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","ignoreList":[]}]} |